summaryrefslogtreecommitdiff
path: root/common/usb_storage.c
diff options
context:
space:
mode:
authorBin Meng <bmeng.cn@gmail.com>2017-09-27 21:50:07 -0700
committerMarek Vasut <marex@denx.de>2017-10-01 16:32:55 +0200
commit72ac8f3fc29016a31ee309b4d025b487e78906ab (patch)
treec9d2599b699a9f9ff57581b4a70322d591289755 /common/usb_storage.c
parentfae35857e1c38776854442f59d6b56c17e93fc39 (diff)
downloadu-boot-72ac8f3fc29016a31ee309b4d025b487e78906ab.tar.gz
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>
Diffstat (limited to 'common/usb_storage.c')
-rw-r--r--common/usb_storage.c2
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