]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
scsi: ibmvscsis: Fix a stringop-overflow warning
authorLaura Abbott <labbott@redhat.com>
Tue, 11 Sep 2018 19:22:25 +0000 (12:22 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 17 Sep 2018 06:49:55 +0000 (02:49 -0400)
There's currently a warning about string overflow with strncat:

drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c: In function 'ibmvscsis_probe':
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c:3479:2: error: 'strncat' specified
bound 64 equals destination size [-Werror=stringop-overflow=]
  strncat(vscsi->eye, vdev->name, MAX_EYE);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Switch to a single snprintf instead of a strcpy + strcat to handle this
cleanly.

Signed-off-by: Laura Abbott <labbott@redhat.com>
Suggested-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c

index fac377320158d2a075978be6a8c96adea51e9305..b3a029ad07cd6109d48b9b1ab950d2ad0b3a0dca 100644 (file)
@@ -3474,8 +3474,7 @@ static int ibmvscsis_probe(struct vio_dev *vdev,
                vscsi->dds.window[LOCAL].liobn,
                vscsi->dds.window[REMOTE].liobn);
 
-       strcpy(vscsi->eye, "VSCSI ");
-       strncat(vscsi->eye, vdev->name, MAX_EYE);
+       snprintf(vscsi->eye, sizeof(vscsi->eye), "VSCSI %s", vdev->name);
 
        vscsi->dds.unit_id = vdev->unit_address;
        strncpy(vscsi->dds.partition_name, partition_name,