scsi: Use parameter alloc_len instead of task->alloc_len in
spdk_bdev_scsi_inquiry It was causing false-positive error checks. Change-Id: I6145152abc65bb80cfdfc68ce3b32e6f41d69348 Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
This commit is contained in:
parent
7f11df67ea
commit
55d8cca428
@ -247,7 +247,7 @@ spdk_bdev_scsi_inquiry(struct spdk_bdev *bdev, struct spdk_scsi_task *task,
|
||||
len += sizeof(struct spdk_scsi_desig_desc) + 4;
|
||||
len += sizeof(struct spdk_scsi_desig_desc) + 4;
|
||||
len += sizeof(struct spdk_scsi_desig_desc) + 4;
|
||||
if (sizeof(struct spdk_scsi_vpd_page) + len > task->alloc_len) {
|
||||
if (sizeof(struct spdk_scsi_vpd_page) + len > alloc_len) {
|
||||
spdk_scsi_task_set_status(task, SPDK_SCSI_STATUS_CHECK_CONDITION,
|
||||
SPDK_SCSI_SENSE_ILLEGAL_REQUEST,
|
||||
SPDK_SCSI_ASC_INVALID_FIELD_IN_CDB,
|
||||
@ -362,14 +362,6 @@ spdk_bdev_scsi_inquiry(struct spdk_bdev *bdev, struct spdk_scsi_task *task,
|
||||
to_be16(&desig->desig[2], dev->id);
|
||||
len += sizeof(struct spdk_scsi_desig_desc) + desig->len;
|
||||
|
||||
/* should not exceed the data_in buffer length */
|
||||
if (sizeof(struct spdk_scsi_vpd_page) + len > alloc_len) {
|
||||
spdk_scsi_task_set_status(task, SPDK_SCSI_STATUS_CHECK_CONDITION,
|
||||
SPDK_SCSI_SENSE_ILLEGAL_REQUEST,
|
||||
SPDK_SCSI_ASC_INVALID_FIELD_IN_CDB,
|
||||
SPDK_SCSI_ASCQ_CAUSE_NOT_REPORTABLE);
|
||||
return -1;
|
||||
}
|
||||
to_be16(vpage->alloc_len, len);
|
||||
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user