[U-Boot] [PATCH] usb: storage: Fix overwritten in usb_stor_set_max_xfer_blk()

Marek Vasut marex at denx.de
Thu Sep 28 15:24:50 UTC 2017


On 09/28/2017 06:50 AM, Bin Meng wrote:
> 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>

Still failing
https://travis-ci.org/marex/u-boot-usb/builds/280835848

> ---
> 
>  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
> 


-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list