Commit bf0053550aebe56f3bb5dd793e9de69238b5b945

Authored by Roland Dreier
Committed by Nicholas Bellinger
1 parent bb1acb2ee0

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 }