From 55d8cca42854088dbbc626df6216781ecf54285c Mon Sep 17 00:00:00 2001 From: Dariusz Stojaczyk Date: Fri, 24 Mar 2017 15:07:05 +0100 Subject: [PATCH] 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 --- lib/scsi/scsi_bdev.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/lib/scsi/scsi_bdev.c b/lib/scsi/scsi_bdev.c index f4eb8796b..a3f05e712 100644 --- a/lib/scsi/scsi_bdev.c +++ b/lib/scsi/scsi_bdev.c @@ -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;