Commit bf005355 authored by Roland Dreier's avatar Roland Dreier Committed by Nicholas Bellinger

target: Fail INQUIRY commands with EVPD==0 but PAGE CODE!=0

My draft of SPC-4 says:

    If the PAGE CODE field is not set to zero when the EVPD bit is set
    to zero, the command shall be terminated with CHECK CONDITION
    status, with the sense key set to ILLEGAL REQUEST, and the
    additional sense code set to INVALID FIELD IN CDB.
Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent bb1acb2e
...@@ -698,6 +698,13 @@ int target_emulate_inquiry(struct se_task *task) ...@@ -698,6 +698,13 @@ int target_emulate_inquiry(struct se_task *task)
int p, ret; int p, ret;
if (!(cdb[1] & 0x1)) { if (!(cdb[1] & 0x1)) {
if (cdb[2]) {
pr_err("INQUIRY with EVPD==0 but PAGE CODE=%02x\n",
cdb[2]);
cmd->scsi_sense_reason = TCM_INVALID_CDB_FIELD;
return -EINVAL;
}
ret = target_emulate_inquiry_std(cmd); ret = target_emulate_inquiry_std(cmd);
goto out; goto out;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment