diff options
author | Bin Meng <bmeng.cn@gmail.com> | 2017-09-27 21:50:07 -0700 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2017-10-01 16:32:55 +0200 |
commit | 72ac8f3fc29016a31ee309b4d025b487e78906ab (patch) | |
tree | c9d2599b699a9f9ff57581b4a70322d591289755 | |
parent | fae35857e1c38776854442f59d6b56c17e93fc39 (diff) |
usb: storage: Fix overwritten in usb_stor_set_max_xfer_blk()
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@gmail.com>
-rw-r--r-- | common/usb_storage.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/common/usb_storage.c b/common/usb_storage.c index a57570b73f..a91b1c0d2f 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 |