]> git.baikalelectronics.ru Git - kernel.git/commit
target: Reject SCSI data overflow for fabrics using transport_generic_map_mem_to_cmd
authorNicholas Bellinger <nab@linux-iscsi.org>
Wed, 16 Nov 2011 06:13:24 +0000 (22:13 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Tue, 6 Dec 2011 06:00:53 +0000 (06:00 +0000)
commit8c0ac653f4cbeff805a7c3e4f03391c00c7a2268
treee59f7c7074c32e604a9b1a9f15550c0249e12546
parent2a90129d6d3273a8b4780bbdde5e9937de21feed
target: Reject SCSI data overflow for fabrics using transport_generic_map_mem_to_cmd

This patch changes transport_generic_map_mem_to_cmd() to reject SCSI data
overflow and to send exception status with CHECK_CONDITION + TCM_INVALID_CDB_FIELD
for fabrics that are passing a pre-populated struct scatterlist (eg: tcm_loop
and iscsi-target) being mapped into se_cmd->t_data_sg and se_cmd->t_data_nents.

This addresses an OOPs where transport_allocate_data_tasks() would walk
the incorrect post OVERFLOW cmd->data_length value beyond the end of
the passed scatterlist.

Cc: Christoph Hellwig <hch@lst.de>
Cc: Andy Grover <agrover@redhat.com>
Cc: stable@kernel.org
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_transport.c