fix: check scsi_datain_unmarshall for NULL
Signed-off-by: Peter Lieven <pl@dlhnet.de>
This commit is contained in:
@@ -101,15 +101,20 @@ iscsi_inquiry_page_0x80_cb(struct iscsi_context *iscsi, int status,
|
|||||||
|
|
||||||
if (!status) {
|
if (!status) {
|
||||||
inq = scsi_datain_unmarshall(task);
|
inq = scsi_datain_unmarshall(task);
|
||||||
if (!iscsi->unit_serial_number[0]) {
|
if (inq != NULL) {
|
||||||
ISCSI_LOG(iscsi, 2, "unit serial number is [%s]", inq->usn);
|
if (!iscsi->unit_serial_number[0]) {
|
||||||
strncpy(iscsi->unit_serial_number, inq->usn, MAX_STRING_SIZE);
|
ISCSI_LOG(iscsi, 2, "unit serial number is [%s]", inq->usn);
|
||||||
} else if (strncmp(iscsi->unit_serial_number, inq->usn, MAX_STRING_SIZE)) {
|
strncpy(iscsi->unit_serial_number, inq->usn, MAX_STRING_SIZE);
|
||||||
iscsi_set_error(iscsi, "unit serial number mismatch. got [%s] expected [%s]",
|
} else if (strncmp(iscsi->unit_serial_number, inq->usn, MAX_STRING_SIZE)) {
|
||||||
inq->usn, iscsi->unit_serial_number);
|
iscsi_set_error(iscsi, "unit serial number mismatch. got [%s] expected [%s]",
|
||||||
status = 1;
|
inq->usn, iscsi->unit_serial_number);
|
||||||
|
status = 1;
|
||||||
|
} else {
|
||||||
|
ISCSI_LOG(iscsi, 2, "successfully validated unit serial number [%s]", inq->usn);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ISCSI_LOG(iscsi, 2, "successfully validated unit serial number [%s]", inq->usn);
|
iscsi_set_error(iscsi, "iscsi_inquiry_task datain_unmarshall failed. could not read vpd page 0x80.");
|
||||||
|
status = 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
iscsi_set_error(iscsi, "iscsi_inquiry_task failed. could not read vpd page 0x80.");
|
iscsi_set_error(iscsi, "iscsi_inquiry_task failed. could not read vpd page 0x80.");
|
||||||
|
|||||||
Reference in New Issue
Block a user