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>
master
Bin Meng 7 years ago committed by Marek Vasut
parent fae35857e1
commit 72ac8f3fc2
  1. 2
      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

Loading…
Cancel
Save