Skip to contentSkip to conversation

scsi: ibmvscsis: Ensure partition name is properly NUL terminated

PATCH Superseded Laura Abbott 2 participants 2 messages Sep 11, 2018

Subsystems (2)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 scsi: ibmvscsis: Ensure partition name is properly NUL terminated

While reviewing another part of the code, Kees noticed that the strncpy of the partition name might not always be NUL terminated. Switch to using strlcpy which does this safely.

---
I realized looking at this that I probably should have made this and my previous patch a series given this has context depending on the other patch. I can resend if the scsi maintainers want.

---
 drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c +1 -1
index 9305440a00a1..1217bf2a28db 100644
@@ -3477,7 +3477,7 @@ static int ibmvscsis_probe(struct vio_dev *vdev,
 	snprintf(vscsi->eye, sizeof(vscsi->eye), "VSCSI%s", vdev->name);
 
 	vscsi->dds.unit_id = vdev->unit_address;
-	strncpy(vscsi->dds.partition_name, partition_name,
+	strlcpy(vscsi->dds.partition_name, partition_name,
 		sizeof(vscsi->dds.partition_name));
 	vscsi->dds.partition_num = partition_number;
 
Signature · 1 line
2.17.1
#1 lore raw
Quoted 19 lines · Laura Abbott

While reviewing another part of the code, Kees noticed that the strncpy of the partition name might not always be NUL terminated. Switch to using strlcpy which does this safely.

---
I realized looking at this that I probably should have made this and my previous patch a series given this has context depending on the other patch. I can resend if the scsi maintainers want.

---
 drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c +0 -0
index 9305440a00a1..1217bf2a28db 100644

drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c static int ibmvscsis_probe(struct vio_dev *vdev, · line 3480

Quoted 5 lines
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c +1 -1
@@ -3477,7 +3477,7 @@ static int ibmvscsis_probe(struct vio_dev *vdev,
        snprintf(vscsi->eye, sizeof(vscsi->eye), "VSCSI%s", vdev->name);
 
        vscsi->dds.unit_id = vdev->unit_address;
-       strncpy(vscsi->dds.partition_name, partition_name,
+       strlcpy(vscsi->dds.partition_name, partition_name,

Please use strscpy() in favor of strlcpy().

-Kees

Quoted 6 lines
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c +0 -1
                sizeof(vscsi->dds.partition_name));
        vscsi->dds.partition_num = partition_number;
 
--

2.17.1

Signature · 2 lines
Kees Cook
Pixel Security