usb.c: warning on USB_MAXINTERFACES overflow
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
3c68ddb583
commit
a8af2ad4f1
1 changed files with 10 additions and 0 deletions
|
@ -207,6 +207,16 @@ static int usb_parse_config(struct usb_device *dev, unsigned char *buffer, int c
|
||||||
&buffer[index])->bInterfaceNumber != curr_if_num) {
|
&buffer[index])->bInterfaceNumber != curr_if_num) {
|
||||||
/* this is a new interface, copy new desc */
|
/* this is a new interface, copy new desc */
|
||||||
ifno = dev->config.no_of_if;
|
ifno = dev->config.no_of_if;
|
||||||
|
/* if ifno > USB_MAXINTERFACES, then
|
||||||
|
* next memcpy() will corrupt dev->config
|
||||||
|
*/
|
||||||
|
if (ifno > USB_MAXINTERFACES) {
|
||||||
|
printf("ifno = %d > "
|
||||||
|
"USB_MAXINTERFACES = %d !\n",
|
||||||
|
ifno,
|
||||||
|
USB_MAXINTERFACES);
|
||||||
|
break;
|
||||||
|
}
|
||||||
dev->config.no_of_if++;
|
dev->config.no_of_if++;
|
||||||
memcpy(&dev->config.if_desc[ifno],
|
memcpy(&dev->config.if_desc[ifno],
|
||||||
&buffer[index], buffer[index]);
|
&buffer[index], buffer[index]);
|
||||||
|
|
Loading…
Reference in a new issue