target: bounds check XCOPY total descriptor list length
authorDavid Disseldorp <ddiss@suse.de>
Fri, 23 Dec 2016 10:37:56 +0000 (11:37 +0100)
committerBart Van Assche <bart.vanassche@sandisk.com>
Tue, 10 Jan 2017 16:41:04 +0000 (08:41 -0800)
commit7d38706669ce00603b187f667a4eb67c94eac098
tree0c4d6bac992d92cb898e83f4e1b19fc8718de04d
parentaf9f62c1686268c0517b289274d38f3a03bebd2a
target: bounds check XCOPY total descriptor list length

spc4r37 6.4.3.5 states:
  If the combined length of the CSCD descriptors and segment descriptors
  exceeds the allowed value, then the copy manager shall terminate the
  command with CHECK CONDITION status, with the sense key set to ILLEGAL
  REQUEST, and the additional sense code set to PARAMETER LIST LENGTH
  ERROR.

This functionality can be tested using the libiscsi
ExtendedCopy.DescrLimits test.

Signed-off-by: David Disseldorp <ddiss@suse.de>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
drivers/target/target_core_xcopy.c