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>
[jcsing.lee: cherry-pick from mainline to fix booting hanging]
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
Change-Id: Icf90864b9649686dd17132af3493a5bab6c7f4e3
}
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;