]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
scsi: scsi_dh_rdac: zero cdb in send_mode_select()
authorMartin Wilck <Martin.Wilck@suse.com>
Wed, 4 Sep 2019 15:52:29 +0000 (15:52 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 5 Oct 2019 11:14:01 +0000 (13:14 +0200)
commita16791fccaf68008e2614aa726b36912f3daef2e
treee60d1d2960fe5685913be01f859ada43846dae4a
parent6e8f051e504d15da929385a1eef66c8f5d91e167
scsi: scsi_dh_rdac: zero cdb in send_mode_select()

commit 57adf5d4cfd3198aa480e7c94a101fc8c4e6109d upstream.

cdb in send_mode_select() is not zeroed and is only partially filled in
rdac_failover_get(), which leads to some random data getting to the
device. Users have reported storage responding to such commands with
INVALID FIELD IN CDB. Code before commit 327825574132 was not affected, as
it called blk_rq_set_block_pc().

Fix this by zeroing out the cdb first.

Identified & fix proposed by HPE.

Fixes: 327825574132 ("scsi_dh_rdac: switch to scsi_execute_req_flags()")
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20190904155205.1666-1-martin.wilck@suse.com
Signed-off-by: Martin Wilck <mwilck@suse.com>
Acked-by: Ales Novak <alnovak@suse.cz>
Reviewed-by: Shane Seymour <shane.seymour@hpe.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/scsi/device_handler/scsi_dh_rdac.c