[U-Boot] [PATCH] usb: storage: Fix overwritten in usb_stor_set_max_xfer_blk()
Bin Meng
bmeng.cn at gmail.com
Thu Sep 28 04:50:07 UTC 2017
The stored 'blk' value is overwritten to 'size / 512' before it can
be used in usb_stor_set_max_xfer_blk(). This is not what we want.
In fact, when 'size' exceeds the upper limit (USHRT_MAX * 512), we
should simply assign 'size' to the upper limit.
Reported-by: Coverity (CID: 167250)
Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
---
common/usb_storage.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/common/usb_storage.c b/common/usb_storage.c
index a57570b..a91b1c0 100644
--- a/common/usb_storage.c
+++ b/common/usb_storage.c
@@ -964,7 +964,7 @@ static void usb_stor_set_max_xfer_blk(struct usb_device *udev,
blk = 20;
} else {
if (size > USHRT_MAX * 512)
- blk = USHRT_MAX;
+ size = USHRT_MAX * 512;
blk = size / 512;
}
#endif
--
2.7.4
More information about the U-Boot
mailing list