
22 Sep
2017
22 Sep
'17
6:59 a.m.
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.cn@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 sr@denx.de Tested-by: Stefan Roese sr@denx.de
Thanks, Stefan