scsi-lowlevel.c: check that task/datain are valid before we unmarshalling
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
This commit is contained in:
@@ -3252,19 +3252,18 @@ scsi_datain_getfullsize(struct scsi_task *task)
|
|||||||
void *
|
void *
|
||||||
scsi_datain_unmarshall(struct scsi_task *task)
|
scsi_datain_unmarshall(struct scsi_task *task)
|
||||||
{
|
{
|
||||||
switch (task->cdb[0]) {
|
if (!task || !task->datain.size)
|
||||||
case SCSI_OPCODE_TESTUNITREADY:
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
switch (task->cdb[0]) {
|
||||||
case SCSI_OPCODE_INQUIRY:
|
case SCSI_OPCODE_INQUIRY:
|
||||||
return scsi_inquiry_datain_unmarshall(task);
|
return scsi_inquiry_datain_unmarshall(task);
|
||||||
case SCSI_OPCODE_MODESENSE6:
|
case SCSI_OPCODE_MODESENSE6:
|
||||||
return scsi_modesense_datain_unmarshall(task, 1);
|
return scsi_modesense_datain_unmarshall(task, 1);
|
||||||
case SCSI_OPCODE_MODESENSE10:
|
case SCSI_OPCODE_MODESENSE10:
|
||||||
return scsi_modesense_datain_unmarshall(task, 0);
|
return scsi_modesense_datain_unmarshall(task, 0);
|
||||||
case SCSI_OPCODE_READCAPACITY10:
|
case SCSI_OPCODE_READCAPACITY10:
|
||||||
return scsi_readcapacity10_datain_unmarshall(task);
|
return scsi_readcapacity10_datain_unmarshall(task);
|
||||||
case SCSI_OPCODE_SYNCHRONIZECACHE10:
|
|
||||||
return NULL;
|
|
||||||
case SCSI_OPCODE_READTOC:
|
case SCSI_OPCODE_READTOC:
|
||||||
return scsi_readtoc_datain_unmarshall(task);
|
return scsi_readtoc_datain_unmarshall(task);
|
||||||
case SCSI_OPCODE_REPORTLUNS:
|
case SCSI_OPCODE_REPORTLUNS:
|
||||||
|
|||||||
Reference in New Issue
Block a user