scsi: qedf: Replace deprecated strncpy() with strscpy()

JIRA: https://issues.redhat.com/browse/RHEL-52263

commit 2303149d584feade8074295b717451b36ac63307
Author: Justin Stitt <justinstitt@google.com>
Date:   Tue Mar 5 23:34:38 2024 +0000

    scsi: qedf: Replace deprecated strncpy() with strscpy()

    We expect slowpath_params.name to be NUL-terminated based on its future
    usage with other string APIs:

    |       static int qed_slowpath_start(struct qed_dev *cdev,
    |                                     struct qed_slowpath_params *params)
    ...
    |       strscpy(drv_version.name, params->name,
    |               MCP_DRV_VER_STR_SIZE - 4);

    Moreover, NUL-padding is not necessary as the only use for this slowpath
    name parameter is to copy into the drv_version.name field.

    Also, let's prefer using strscpy(src, dest, sizeof(src)) in two instances
    (one of which is outside of the scsi system but it is trivial and related
    to this patch).

    We can see the drv_version.name size here:
    |       struct qed_mcp_drv_version {
    |               u32     version;
    |               u8      name[MCP_DRV_VER_STR_SIZE - 4];
    |       };

    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-3-5b78a13ff984@google.com
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>

Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
This commit is contained in:
Michal Schmidt 2024-11-24 01:59:59 +01:00
parent a2dcc7a4c2
commit c618a85e30
2 changed files with 2 additions and 2 deletions

View File

@ -1351,7 +1351,7 @@ static int qed_slowpath_start(struct qed_dev *cdev,
(params->drv_rev << 8) |
(params->drv_eng);
strscpy(drv_version.name, params->name,
MCP_DRV_VER_STR_SIZE - 4);
sizeof(drv_version.name));
rc = qed_mcp_send_drv_version(hwfn, hwfn->p_main_ptt,
&drv_version);
if (rc) {

View File

@ -3481,7 +3481,7 @@ retry_probe:
slowpath_params.drv_minor = QEDF_DRIVER_MINOR_VER;
slowpath_params.drv_rev = QEDF_DRIVER_REV_VER;
slowpath_params.drv_eng = QEDF_DRIVER_ENG_VER;
strncpy(slowpath_params.name, "qedf", QED_DRV_VER_STR_SIZE);
strscpy(slowpath_params.name, "qedf", sizeof(slowpath_params.name));
rc = qed_ops->common->slowpath_start(qedf->cdev, &slowpath_params);
if (rc) {
QEDF_ERR(&(qedf->dbg_ctx), "Cannot start slowpath.\n");