summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorAndrey Smirnov <andrew.smirnov@gmail.com>2019-05-22 00:33:47 -0700
committerSascha Hauer <s.hauer@pengutronix.de>2019-05-23 09:11:10 +0200
commit85de58c03ccd20764dd5afa2efc8b2f1380c4259 (patch)
tree825f4b7bbf5063eee96975d716314282d0c6900e /drivers/usb
parent9b8ed55336bc7aa7d90f3327752c8682ae00decb (diff)
downloadbarebox-85de58c03ccd20764dd5afa2efc8b2f1380c4259.tar.gz
barebox-85de58c03ccd20764dd5afa2efc8b2f1380c4259.tar.xz
usb: storage: Zero CDB out before sending it
Since cbw.Length can be less that sizeof(cbw.CDB), add code to zero the whole struct out to avoid sending random stack data as a part of payload. There's no known case where this causes a problem, but it's a reasonable thing to do anyway. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/storage/transport.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
index 48ccee2072..5186508ba6 100644
--- a/drivers/usb/storage/transport.c
+++ b/drivers/usb/storage/transport.c
@@ -115,6 +115,7 @@ int usb_stor_Bulk_transport(struct us_blk_dev *usb_blkdev,
cbw.Length = cmdlen;
/* copy the command payload */
+ memset(cbw.CDB, 0, sizeof(cbw.CDB));
memcpy(cbw.CDB, cmd, cbw.Length);
/* send it to out endpoint */