Commit f81eaf08 authored by Martin Wilck's avatar Martin Wilck Committed by Martin K. Petersen
Browse files

scsi: sd: Fix off-by-one error in sd_read_block_characteristics()



Ff the device returns page 0xb1 with length 8 (happens with qemu v2.x, for
example), sd_read_block_characteristics() may attempt an out-of-bounds
memory access when accessing the zoned field at offset 8.

Fixes: 7fb019c4 ("scsi: sd: Switch to using scsi_device VPD pages")
Cc: stable@vger.kernel.org
Signed-off-by: default avatarMartin Wilck <mwilck@suse.com>
Link: https://lore.kernel.org/r/20240912134308.282824-1-mwilck@suse.com


Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent a141c17a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3402,7 +3402,7 @@ static void sd_read_block_characteristics(struct scsi_disk *sdkp,
	rcu_read_lock();
	vpd = rcu_dereference(sdkp->device->vpd_pgb1);

	if (!vpd || vpd->len < 8) {
	if (!vpd || vpd->len <= 8) {
		rcu_read_unlock();
	        return;
	}