scsi: mpt3sas: Replace deprecated strncpy() with strscpy()
authorJustin Stitt <justinstitt@google.com>
Tue, 5 Mar 2024 23:34:37 +0000 (23:34 +0000)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sun, 10 Mar 2024 22:37:43 +0000 (18:37 -0400)
The replacement in mpt3sas_base.c is a trivial one because desc is already
zero-initialized meaning there is no functional change here.

For mpt3sas_transport.c, we know edev is zero-initialized as well while
manufacture_reply comes from dma_alloc_coherent(). No functional change
here either.

For all cases, use the more idiomatic strscpy() usage of: strscpy(dest,
src, sizeof(dest))

Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Justin Stitt <justinstitt@google.com>
Link: https://lore.kernel.org/r/20240305-strncpy-drivers-scsi-mpi3mr-mpi3mr_fw-c-v3-2-5b78a13ff984@google.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mpt3sas/mpt3sas_base.c
drivers/scsi/mpt3sas/mpt3sas_transport.c

index fc8c45e15235571bacff394a1e05dcb80cd53125..f9a5349ae5bd0e72d9e2e06e68ac671ba2d6d156 100644 (file)
@@ -4774,7 +4774,7 @@ _base_display_ioc_capabilities(struct MPT3SAS_ADAPTER *ioc)
        char desc[17] = {0};
        u32 iounit_pg1_flags;
 
-       strncpy(desc, ioc->manu_pg0.ChipName, 16);
+       strscpy(desc, ioc->manu_pg0.ChipName, sizeof(desc));
        ioc_info(ioc, "%s: FWVersion(%02d.%02d.%02d.%02d), ChipRevision(0x%02x)\n",
                 desc,
                 (ioc->facts.FWVersion.Word & 0xFF000000) >> 24,
index 421ea511b66421193fe1ed2778c89d578e4653c0..76f9a91771985baed3ede562c19c5df830696608 100644 (file)
@@ -458,17 +458,17 @@ _transport_expander_report_manufacture(struct MPT3SAS_ADAPTER *ioc,
                        goto out;
 
                manufacture_reply = data_out + sizeof(struct rep_manu_request);
-               strncpy(edev->vendor_id, manufacture_reply->vendor_id,
-                    SAS_EXPANDER_VENDOR_ID_LEN);
-               strncpy(edev->product_id, manufacture_reply->product_id,
-                    SAS_EXPANDER_PRODUCT_ID_LEN);
-               strncpy(edev->product_rev, manufacture_reply->product_rev,
-                    SAS_EXPANDER_PRODUCT_REV_LEN);
+               strscpy(edev->vendor_id, manufacture_reply->vendor_id,
+                       sizeof(edev->vendor_id));
+               strscpy(edev->product_id, manufacture_reply->product_id,
+                       sizeof(edev->product_id));
+               strscpy(edev->product_rev, manufacture_reply->product_rev,
+                       sizeof(edev->product_rev));
                edev->level = manufacture_reply->sas_format & 1;
                if (edev->level) {
-                       strncpy(edev->component_vendor_id,
-                           manufacture_reply->component_vendor_id,
-                            SAS_EXPANDER_COMPONENT_VENDOR_ID_LEN);
+                       strscpy(edev->component_vendor_id,
+                               manufacture_reply->component_vendor_id,
+                               sizeof(edev->component_vendor_id));
                        tmp = (u8 *)&manufacture_reply->component_id;
                        edev->component_id = tmp[0] << 8 | tmp[1];
                        edev->component_revision_id =