diff options
Diffstat (limited to 'drivers/usb/core/config.c')
| -rw-r--r-- | drivers/usb/core/config.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c index 20ff036b4c22..9d6cb709ca7b 100644 --- a/drivers/usb/core/config.c +++ b/drivers/usb/core/config.c @@ -932,8 +932,8 @@ int usb_get_bos_descriptor(struct usb_device *dev)  	/* Get BOS descriptor */  	ret = usb_get_descriptor(dev, USB_DT_BOS, 0, bos, USB_DT_BOS_SIZE); -	if (ret < USB_DT_BOS_SIZE) { -		dev_err(ddev, "unable to get BOS descriptor\n"); +	if (ret < USB_DT_BOS_SIZE || bos->bLength < USB_DT_BOS_SIZE) { +		dev_err(ddev, "unable to get BOS descriptor or descriptor too short\n");  		if (ret >= 0)  			ret = -ENOMSG;  		kfree(bos);  |