]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: target: Fix WRITE_SAME No Data Buffer crash
authorMike Christie <michael.christie@oracle.com>
Tue, 28 Jun 2022 02:23:25 +0000 (21:23 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 7 Jul 2022 20:38:14 +0000 (16:38 -0400)
commit479727c5c347f6348afc25cea6e4ea52db13f0ba
tree92fcfb4b40910560ad306fb846e1733b0dacd4b7
parenta6196b10ad87f23752e63d17b585ad728c2ce10a
scsi: target: Fix WRITE_SAME No Data Buffer crash

In newer version of the SBC specs, we have a NDOB bit that indicates there
is no data buffer that gets written out. If this bit is set using commands
like "sg_write_same --ndob" we will crash in target_core_iblock/file's
execute_write_same handlers when we go to access the se_cmd->t_data_sg
because its NULL.

This patch adds a check for the NDOB bit in the common WRITE SAME code
because we don't support it. And, it adds a check for zero SG elements in
each handler in case the initiator tries to send a normal WRITE SAME with
no data buffer.

Link: https://lore.kernel.org/r/20220628022325.14627-2-michael.christie@oracle.com
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/target/target_core_file.c
drivers/target/target_core_iblock.c
drivers/target/target_core_sbc.c