diff options
Diffstat (limited to 'drivers/net/usb/rndis_host.c')
| -rw-r--r-- | drivers/net/usb/rndis_host.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/usb/rndis_host.c b/drivers/net/usb/rndis_host.c index f79333fe1783..7b3739b29c8f 100644 --- a/drivers/net/usb/rndis_host.c +++ b/drivers/net/usb/rndis_host.c @@ -255,7 +255,8 @@ static int rndis_query(struct usbnet *dev, struct usb_interface *intf,  	off = le32_to_cpu(u.get_c->offset);  	len = le32_to_cpu(u.get_c->len); -	if (unlikely((8 + off + len) > CONTROL_BUFFER_SIZE)) +	if (unlikely((off > CONTROL_BUFFER_SIZE - 8) || +		     (len > CONTROL_BUFFER_SIZE - 8 - off)))  		goto response_error;  	if (*reply_len != -1 && len != *reply_len)  |