DF-1318 / fix.diff
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; |