From nobody Mon Jun 8 23:56:08 2026 Received: from out-186.mta1.migadu.com (out-186.mta1.migadu.com [95.215.58.186]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 517003537ED for ; Mon, 25 May 2026 10:35:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.186 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779705329; cv=none; b=SO5kRjA9EoYkOba2N9lNy1guj9BOS2PcHIgHQfEsE/+DP7ioRRzsjkfFvl7YxE5iF7KM9MKSD4Mlg7AqGe7Xr8naMZQMf+ltEqlZR9qzUTlIYC5WeM5qkVb3KQ71d68pv9dxqkENxIC4OyWDZc3dP81fW1dOHQ40A0GSBzmEG7M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779705329; c=relaxed/simple; bh=KZ2a3Jn5O4XFlTzbyLYNqvhkfppTqzD1awT6OxYOEu8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=QpeW9SfgzJ7WUC+jCSugFQ1Fynutgw8kysB8FvhDQfnt4aIsgoxyXFbobULwkN15dgPECXvf6Zgu0PKUv6Yx+8s710gTfD6hc9poZDmdDF7OyJ82jWkEeQunOb6itFxaPFbaHYWDGTRG3rC9xvfKttyR+sfbH+/5AF96Lu5Y2oE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=J40514aX; arc=none smtp.client-ip=95.215.58.186 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="J40514aX" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1779705324; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=LN2XYtaCH98z9s+vllk9Y/IuaTY6tlcDfegF5r8CntM=; b=J40514aXVGT2dk9hMua0Pspn/3lDv/qiQosO9X9iT1fCsAfd7ZcuNm/AVMqoUwsT2k/8uv Kxgit7T/ZtqTydc79q97ISi8n5K8a7MT9lc8gVs4WTnXajT3z+ZRxLvcDIIW/q/pW1CBS6 AuA+jjxg4p2sK3frxuM8h9j8rlgncJg= From: Thorsten Blum To: Herbert Xu , "David S. Miller" , Tom Lendacky , John Allen , Weili Qian , Zhou Wang , Giovanni Cabiddu , Srujana Challa , Bharat Bhushan Cc: linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, qat-linux@intel.com, Thorsten Blum Subject: [PATCH] crypto: use two-argument strscpy where destination size is known Date: Mon, 25 May 2026 12:30:41 +0200 Message-ID: <20260525103038.825690-4-thorsten.blum@linux.dev> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=14514; i=thorsten.blum@linux.dev; h=from:subject; bh=90gVDhciRJ0Wu5DrX+XavJ7pkkbO1YSTPLHAis5/ZYw=; b=owGbwMvMwCUWt7pQ4caZUj3G02pJDFkiKueKj7rJtjTUT92hvFxlecu75X3z1ZxPSzDPFTXx3 Fl9801MRykLgxgXg6yYIsuDWT9m+JbWVG4yidgJM4eVCWQIAxenAEyE/Qsjw/pInQPpCxXUa6oz ZF3+5k8XmDnvu4iG81J1noffcv5c42BkuDUhft2uZ8c+hGs9aD4/qW6Bdp2povLEyvQfH7v/luy y5AYA X-Developer-Key: i=thorsten.blum@linux.dev; a=openpgp; fpr=1D60735E8AEF3BE473B69D84733678FD8DFEEAD4 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" To simplify the code, drop explicit and hard-coded size arguments from strscpy() where the destination buffer has a fixed size and strscpy() can automatically determine it using sizeof(). Signed-off-by: Thorsten Blum Acked-by: Giovanni Cabiddu # QAT Reviewed-by: Longfang Liu Reviewed-by: Tom Lendacky --- crypto/api.c | 2 +- crypto/crypto_user.c | 9 ++++----- crypto/hctr2.c | 3 +-- crypto/lrw.c | 2 +- crypto/lskcipher.c | 3 +-- crypto/xts.c | 3 ++- drivers/crypto/cavium/nitrox/nitrox_hal.c | 3 ++- drivers/crypto/ccp/ccp-crypto-sha.c | 2 +- drivers/crypto/hisilicon/qm.c | 5 +---- drivers/crypto/intel/qat/qat_common/adf_cfg.c | 7 ++++--- drivers/crypto/intel/qat/qat_common/adf_cfg_services.c | 2 +- drivers/crypto/intel/qat/qat_common/adf_ctl_drv.c | 3 ++- drivers/crypto/intel/qat/qat_common/adf_mstate_mgr.c | 3 ++- .../crypto/intel/qat/qat_common/adf_transport_debug.c | 3 ++- drivers/crypto/intel/qat/qat_common/qat_compression.c | 3 ++- drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c | 6 +++--- drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c | 4 ++-- 17 files changed, 32 insertions(+), 31 deletions(-) diff --git a/crypto/api.c b/crypto/api.c index 74e17d5049c9..040b7a965c2f 100644 --- a/crypto/api.c +++ b/crypto/api.c @@ -116,7 +116,7 @@ struct crypto_larval *crypto_larval_alloc(const char *n= ame, u32 type, u32 mask) larval->alg.cra_priority =3D -1; larval->alg.cra_destroy =3D crypto_larval_destroy; =20 - strscpy(larval->alg.cra_name, name, CRYPTO_MAX_ALG_NAME); + strscpy(larval->alg.cra_name, name); init_completion(&larval->completion); =20 return larval; diff --git a/crypto/crypto_user.c b/crypto/crypto_user.c index e8b6ae75f31f..d3ccb507153b 100644 --- a/crypto/crypto_user.c +++ b/crypto/crypto_user.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -87,11 +88,9 @@ static int crypto_report_one(struct crypto_alg *alg, { memset(ualg, 0, sizeof(*ualg)); =20 - strscpy(ualg->cru_name, alg->cra_name, sizeof(ualg->cru_name)); - strscpy(ualg->cru_driver_name, alg->cra_driver_name, - sizeof(ualg->cru_driver_name)); - strscpy(ualg->cru_module_name, module_name(alg->cra_module), - sizeof(ualg->cru_module_name)); + strscpy(ualg->cru_name, alg->cra_name); + strscpy(ualg->cru_driver_name, alg->cra_driver_name); + strscpy(ualg->cru_module_name, module_name(alg->cra_module)); =20 ualg->cru_type =3D 0; ualg->cru_mask =3D 0; diff --git a/crypto/hctr2.c b/crypto/hctr2.c index ad5edf9366ac..cfc2343bcc1c 100644 --- a/crypto/hctr2.c +++ b/crypto/hctr2.c @@ -354,8 +354,7 @@ static int hctr2_create_common(struct crypto_template *= tmpl, struct rtattr **tb, err =3D -EINVAL; if (strncmp(xctr_alg->base.cra_name, "xctr(", 5)) goto err_free_inst; - len =3D strscpy(blockcipher_name, xctr_alg->base.cra_name + 5, - sizeof(blockcipher_name)); + len =3D strscpy(blockcipher_name, xctr_alg->base.cra_name + 5); if (len < 1) goto err_free_inst; if (blockcipher_name[len - 1] !=3D ')') diff --git a/crypto/lrw.c b/crypto/lrw.c index aa31ab03a597..e306e85d7ced 100644 --- a/crypto/lrw.c +++ b/crypto/lrw.c @@ -359,7 +359,7 @@ static int lrw_create(struct crypto_template *tmpl, str= uct rtattr **tb) if (!memcmp(cipher_name, "ecb(", 4)) { int len; =20 - len =3D strscpy(ecb_name, cipher_name + 4, sizeof(ecb_name)); + len =3D strscpy(ecb_name, cipher_name + 4); if (len < 2) goto err_free_inst; =20 diff --git a/crypto/lskcipher.c b/crypto/lskcipher.c index e4328df6e26c..d7ec215e2b3a 100644 --- a/crypto/lskcipher.c +++ b/crypto/lskcipher.c @@ -528,8 +528,7 @@ struct lskcipher_instance *lskcipher_alloc_instance_sim= ple( int len; =20 err =3D -EINVAL; - len =3D strscpy(ecb_name, &cipher_alg->co.base.cra_name[4], - sizeof(ecb_name)); + len =3D strscpy(ecb_name, &cipher_alg->co.base.cra_name[4]); if (len < 2) goto err_free_inst; =20 diff --git a/crypto/xts.c b/crypto/xts.c index ad97c8091582..1dc948745444 100644 --- a/crypto/xts.c +++ b/crypto/xts.c @@ -16,6 +16,7 @@ #include #include #include +#include =20 #include #include @@ -400,7 +401,7 @@ static int xts_create(struct crypto_template *tmpl, str= uct rtattr **tb) if (!memcmp(cipher_name, "ecb(", 4)) { int len; =20 - len =3D strscpy(name, cipher_name + 4, sizeof(name)); + len =3D strscpy(name, cipher_name + 4); if (len < 2) goto err_free_inst; =20 diff --git a/drivers/crypto/cavium/nitrox/nitrox_hal.c b/drivers/crypto/cav= ium/nitrox/nitrox_hal.c index 1b5abdb6cc5e..e36c1741bb78 100644 --- a/drivers/crypto/cavium/nitrox/nitrox_hal.c +++ b/drivers/crypto/cavium/nitrox/nitrox_hal.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 #include +#include =20 #include "nitrox_dev.h" #include "nitrox_csr.h" @@ -647,7 +648,7 @@ void nitrox_get_hwinfo(struct nitrox_device *ndev) ndev->hw.revision_id); =20 /* copy partname */ - strscpy(ndev->hw.partname, name, sizeof(ndev->hw.partname)); + strscpy(ndev->hw.partname, name); } =20 void enable_pf2vf_mbox_interrupts(struct nitrox_device *ndev) diff --git a/drivers/crypto/ccp/ccp-crypto-sha.c b/drivers/crypto/ccp/ccp-c= rypto-sha.c index 85058a89f35b..ff9bb253dbb2 100644 --- a/drivers/crypto/ccp/ccp-crypto-sha.c +++ b/drivers/crypto/ccp/ccp-crypto-sha.c @@ -426,7 +426,7 @@ static int ccp_register_hmac_alg(struct list_head *head, *ccp_alg =3D *base_alg; INIT_LIST_HEAD(&ccp_alg->entry); =20 - strscpy(ccp_alg->child_alg, def->name, CRYPTO_MAX_ALG_NAME); + strscpy(ccp_alg->child_alg, def->name); =20 alg =3D &ccp_alg->alg; alg->setkey =3D ccp_sha_setkey; diff --git a/drivers/crypto/hisilicon/qm.c b/drivers/crypto/hisilicon/qm.c index 3ca47e2a9719..0c8cc0d7a82a 100644 --- a/drivers/crypto/hisilicon/qm.c +++ b/drivers/crypto/hisilicon/qm.c @@ -2870,11 +2870,8 @@ static int qm_alloc_uacce(struct hisi_qm *qm) .flags =3D UACCE_DEV_SVA, .ops =3D &uacce_qm_ops, }; - int ret; =20 - ret =3D strscpy(interface.name, dev_driver_string(&pdev->dev), - sizeof(interface.name)); - if (ret < 0) + if (strscpy(interface.name, dev_driver_string(&pdev->dev)) < 0) return -ENAMETOOLONG; =20 uacce =3D uacce_alloc(&pdev->dev, &interface); diff --git a/drivers/crypto/intel/qat/qat_common/adf_cfg.c b/drivers/crypto= /intel/qat/qat_common/adf_cfg.c index c202209f17d5..24c2618af68d 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_cfg.c +++ b/drivers/crypto/intel/qat/qat_common/adf_cfg.c @@ -2,6 +2,7 @@ /* Copyright(c) 2014 - 2020 Intel Corporation */ #include #include +#include #include #include #include "adf_accel_devices.h" @@ -294,13 +295,13 @@ int adf_cfg_add_key_value_param(struct adf_accel_dev = *accel_dev, return -ENOMEM; =20 INIT_LIST_HEAD(&key_val->list); - strscpy(key_val->key, key, sizeof(key_val->key)); + strscpy(key_val->key, key); =20 if (type =3D=3D ADF_DEC) { snprintf(key_val->val, ADF_CFG_MAX_VAL_LEN_IN_BYTES, "%ld", (*((long *)val))); } else if (type =3D=3D ADF_STR) { - strscpy(key_val->val, (char *)val, sizeof(key_val->val)); + strscpy(key_val->val, (char *)val); } else if (type =3D=3D ADF_HEX) { snprintf(key_val->val, ADF_CFG_MAX_VAL_LEN_IN_BYTES, "0x%lx", (unsigned long)val); @@ -360,7 +361,7 @@ int adf_cfg_section_add(struct adf_accel_dev *accel_dev= , const char *name) if (!sec) return -ENOMEM; =20 - strscpy(sec->name, name, sizeof(sec->name)); + strscpy(sec->name, name); INIT_LIST_HEAD(&sec->param_head); down_write(&cfg->lock); list_add_tail(&sec->list, &cfg->sec_list); diff --git a/drivers/crypto/intel/qat/qat_common/adf_cfg_services.c b/drive= rs/crypto/intel/qat/qat_common/adf_cfg_services.c index 7d00bcb41ce7..11cba347d12d 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_cfg_services.c +++ b/drivers/crypto/intel/qat/qat_common/adf_cfg_services.c @@ -60,7 +60,7 @@ static int adf_service_string_to_mask(struct adf_accel_de= v *accel_dev, const cha if (len > ADF_CFG_MAX_VAL_LEN_IN_BYTES - 1) return -EINVAL; =20 - strscpy(services, buf, ADF_CFG_MAX_VAL_LEN_IN_BYTES); + strscpy(services, buf); substr =3D services; =20 while ((token =3D strsep(&substr, ADF_SERVICES_DELIMITER))) { diff --git a/drivers/crypto/intel/qat/qat_common/adf_ctl_drv.c b/drivers/cr= ypto/intel/qat/qat_common/adf_ctl_drv.c index c2e6f0cb7480..ae10b91da5ba 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_ctl_drv.c +++ b/drivers/crypto/intel/qat/qat_common/adf_ctl_drv.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -350,7 +351,7 @@ static int adf_ctl_ioctl_get_status(struct file *fp, un= signed int cmd, dev_info.num_logical_accel =3D hw_data->num_logical_accel; dev_info.banks_per_accel =3D hw_data->num_banks / hw_data->num_logical_accel; - strscpy(dev_info.name, hw_data->dev_class->name, sizeof(dev_info.name)); + strscpy(dev_info.name, hw_data->dev_class->name); dev_info.instance_id =3D hw_data->instance_id; dev_info.type =3D hw_data->dev_class->type; dev_info.bus =3D accel_to_pci_dev(accel_dev)->bus->number; diff --git a/drivers/crypto/intel/qat/qat_common/adf_mstate_mgr.c b/drivers= /crypto/intel/qat/qat_common/adf_mstate_mgr.c index f9017e03ec0f..32aeb795cc03 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_mstate_mgr.c +++ b/drivers/crypto/intel/qat/qat_common/adf_mstate_mgr.c @@ -2,6 +2,7 @@ /* Copyright(c) 2024 Intel Corporation */ =20 #include +#include #include #include "adf_mstate_mgr.h" =20 @@ -158,7 +159,7 @@ static struct adf_mstate_sect_h *adf_mstate_sect_add_he= ader(struct adf_mstate_mg return NULL; } =20 - strscpy(sect->id, id, sizeof(sect->id)); + strscpy(sect->id, id); sect->size =3D 0; sect->sub_sects =3D 0; mgr->state +=3D sizeof(*sect); diff --git a/drivers/crypto/intel/qat/qat_common/adf_transport_debug.c b/dr= ivers/crypto/intel/qat/qat_common/adf_transport_debug.c index a8f853516a3f..fc5d88a2bb17 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_transport_debug.c +++ b/drivers/crypto/intel/qat/qat_common/adf_transport_debug.c @@ -2,6 +2,7 @@ /* Copyright(c) 2014 - 2020 Intel Corporation */ #include #include +#include #include #include "adf_accel_devices.h" #include "adf_transport_internal.h" @@ -103,7 +104,7 @@ int adf_ring_debugfs_add(struct adf_etr_ring_data *ring= , const char *name) if (!ring_debug) return -ENOMEM; =20 - strscpy(ring_debug->ring_name, name, sizeof(ring_debug->ring_name)); + strscpy(ring_debug->ring_name, name); snprintf(entry_name, sizeof(entry_name), "ring_%02d", ring->ring_number); =20 diff --git a/drivers/crypto/intel/qat/qat_common/qat_compression.c b/driver= s/crypto/intel/qat/qat_common/qat_compression.c index 1424d7a9bcd3..8129ad0c32d8 100644 --- a/drivers/crypto/intel/qat/qat_common/qat_compression.c +++ b/drivers/crypto/intel/qat/qat_common/qat_compression.c @@ -2,6 +2,7 @@ /* Copyright(c) 2022 Intel Corporation */ #include #include +#include #include "adf_accel_devices.h" #include "adf_common_drv.h" #include "adf_transport.h" @@ -144,7 +145,7 @@ static int qat_compression_create_instances(struct adf_= accel_dev *accel_dev) int i; =20 INIT_LIST_HEAD(&accel_dev->compression_list); - strscpy(key, ADF_NUM_DC, sizeof(key)); + strscpy(key, ADF_NUM_DC); ret =3D adf_cfg_get_param_value(accel_dev, SEC, key, val); if (ret) return ret; diff --git a/drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c b/drivers/cr= ypto/marvell/octeontx/otx_cptpf_ucode.c index e0f38d32bc93..5c3636080757 100644 --- a/drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c +++ b/drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c @@ -99,7 +99,7 @@ static int dev_supports_eng_type(struct otx_cpt_eng_grps = *eng_grps, static void set_ucode_filename(struct otx_cpt_ucode *ucode, const char *filename) { - strscpy(ucode->filename, filename, OTX_CPT_UCODE_NAME_LENGTH); + strscpy(ucode->filename, filename); } =20 static char *get_eng_type_str(int eng_type) @@ -140,7 +140,7 @@ static int get_ucode_type(struct otx_cpt_ucode_hdr *uco= de_hdr, int *ucode_type) u32 i, val =3D 0; u8 nn; =20 - strscpy(tmp_ver_str, ucode_hdr->ver_str, OTX_CPT_UCODE_VER_STR_SZ); + strscpy(tmp_ver_str, ucode_hdr->ver_str); for (i =3D 0; i < strlen(tmp_ver_str); i++) tmp_ver_str[i] =3D tolower(tmp_ver_str[i]); =20 @@ -1331,7 +1331,7 @@ static ssize_t ucode_load_store(struct device *dev, =20 eng_grps =3D container_of(attr, struct otx_cpt_eng_grps, ucode_load_attr); err_msg =3D "Invalid engine group format"; - strscpy(tmp_buf, buf, OTX_CPT_UCODE_NAME_LENGTH); + strscpy(tmp_buf, buf); start =3D tmp_buf; =20 has_se =3D has_ie =3D has_ae =3D false; diff --git a/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c b/drivers/= crypto/marvell/octeontx2/otx2_cptpf_ucode.c index 9b0887d7e62c..465f00e74623 100644 --- a/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c +++ b/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c @@ -74,7 +74,7 @@ static int is_2nd_ucode_used(struct otx2_cpt_eng_grp_info= *eng_grp) static void set_ucode_filename(struct otx2_cpt_ucode *ucode, const char *filename) { - strscpy(ucode->filename, filename, OTX2_CPT_NAME_LENGTH); + strscpy(ucode->filename, filename); } =20 static char *get_eng_type_str(int eng_type) @@ -130,7 +130,7 @@ static int get_ucode_type(struct device *dev, int i, val =3D 0; u8 nn; =20 - strscpy(tmp_ver_str, ucode_hdr->ver_str, OTX2_CPT_UCODE_VER_STR_SZ); + strscpy(tmp_ver_str, ucode_hdr->ver_str); for (i =3D 0; i < strlen(tmp_ver_str); i++) tmp_ver_str[i] =3D tolower(tmp_ver_str[i]);