Commit bf0053550aebe56f3bb5dd793e9de69238b5b945
Committed by
Nicholas Bellinger
1 parent
bb1acb2ee0
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
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: Roland Dreier <roland@purestorage.com> Cc: <stable@vger.kernel.org> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Showing 1 changed file with 7 additions and 0 deletions Side-by-side Diff
drivers/target/target_core_cdb.c
... | ... | @@ -698,6 +698,13 @@ |
698 | 698 | int p, ret; |
699 | 699 | |
700 | 700 | if (!(cdb[1] & 0x1)) { |
701 | + if (cdb[2]) { | |
702 | + pr_err("INQUIRY with EVPD==0 but PAGE CODE=%02x\n", | |
703 | + cdb[2]); | |
704 | + cmd->scsi_sense_reason = TCM_INVALID_CDB_FIELD; | |
705 | + return -EINVAL; | |
706 | + } | |
707 | + | |
701 | 708 | ret = target_emulate_inquiry_std(cmd); |
702 | 709 | goto out; |
703 | 710 | } |