On 18.09.2017 15:40, Bin Meng wrote:
Normal endpoint descriptor size is 7, but for audio extension it is
9. Handle that correctly when parsing endpoint descriptor.
Signed-off-by: Bin Meng <bmeng...@gmail.com>
---
common/usb.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/common/usb.c b/common/usb.c
index 0904259..6cb92ef 100644
--- a/common/usb.c
+++ b/common/usb.c
@@ -437,12 +437,13 @@ static int usb_parse_config(struct usb_device *dev,
}
break;
case USB_DT_ENDPOINT:
- if (head->bLength != USB_DT_ENDPOINT_SIZE) {
+ if (head->bLength != USB_DT_ENDPOINT_SIZE &&
+ head->bLength != USB_DT_ENDPOINT_AUDIO_SIZE) {
printf("ERROR: Invalid USB EP length (%d)\n",
head->bLength);
break;
}
- if (index + USB_DT_ENDPOINT_SIZE >
+ if (index + head->bLength >
dev->config.desc.wTotalLength) {
puts("USB EP descriptor overflowed buffer!\n");
break;
Reviewed-by: Stefan Roese <s...@denx.de>
Tested-by: Stefan Roese <s...@denx.de>
Thanks,
Stefan
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot