[U-Boot] [PATCH 04/14] usb: Handle audio extension endpoint descriptor in usb_parse_config()

Stefan Roese sr at denx.de
Fri Sep 22 04:59:19 UTC 2017


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 at 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 at denx.de>
Tested-by: Stefan Roese <sr at denx.de>

Thanks,
Stefan


More information about the U-Boot mailing list