DragonFlyBSD Kernel Audit
DF-1317 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/disk/sbp/sbp.c b/sys/dev/disk/sbp/sbp.c
--- a/sys/dev/disk/sbp/sbp.c
+++ b/sys/dev/disk/sbp/sbp.c
@@ -1502,6 +1502,8 @@
 	kprintf("sbp_fix_inq_data\n");
 END_DEBUG
 	inq = (struct scsi_inquiry_data *) ccb->csio.data_ptr;
+	if (ccb->csio.dxfer_len < SHORT_INQUIRY_LENGTH)
+		return;
 	switch (SID_TYPE(inq)) {
 	case T_DIRECT:
 #if 0
@@ -2099,7 +2101,7 @@
 		tsdev = target->luns[i];
 		if (tsdev == NULL)
 			continue;
-		if (tsdev->status == SBP_DEV_DEAD)
+		if (tsdev->path == NULL || tsdev->status == SBP_DEV_DEAD)
 			continue;
 		if (tsdev->status == SBP_DEV_RESET)
 			continue;