target: fail REPORT LUNS with less than 16 bytes of payload
authorPaolo Bonzini <pbonzini@redhat.com>
Fri, 7 Sep 2012 15:30:34 +0000 (17:30 +0200)
committerNicholas Bellinger <nab@linux-iscsi.org>
Fri, 7 Sep 2012 18:09:14 +0000 (11:09 -0700)
commit9b16b9edb4fd0dc86ee0fbe1f7ede580e26e85f4
treed7ea06abd001ea23ce68c0e98b32c538b29da30c
parent0d7f1299ca5540b9a63ab6e8bf0e89ea963eb6af
target: fail REPORT LUNS with less than 16 bytes of payload

SPC says:

"The ALLOCATION LENGTH field is defined in 4.3.5.6. The allocation length
should be at least 16.  Device servers compliant with SPC return CHECK
CONDITION status, with the sense key set to ILLEGAL REQUEST, and the
additional sense code set to INVALID FIELD IN CDB when the allocation
length is less than 16 bytes".

Testcase: sg_raw -r8 /dev/sdb a0 00 00 00 00 00 00 00 00 08 00 00
    should fail with ILLEGAL REQUEST / INVALID FIELD IN CDB sense
    does not fail without the patch
    fails correctly with the patch

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_device.c