mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
USB: gadget: at91_udc minor fix (there is no number six)
Fix a small glitch noted by Yannick Cote. There is no endpoint number six, so if a (broken) host wrongly tried to change or read status of that endpoint, the driver could access reserved register space. Signed-off-by: David Brownell <[email protected]> Cc: Yannick Cote <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
parent
e58679805d
commit
1440e0967d
1 changed files with 3 additions and 3 deletions
|
|
@ -1153,7 +1153,7 @@ static void handle_setup(struct at91_udc *udc, struct at91_ep *ep, u32 csr)
|
|||
| USB_REQ_GET_STATUS:
|
||||
tmp = w_index & USB_ENDPOINT_NUMBER_MASK;
|
||||
ep = &udc->ep[tmp];
|
||||
if (tmp > NUM_ENDPOINTS || (tmp && !ep->desc))
|
||||
if (tmp >= NUM_ENDPOINTS || (tmp && !ep->desc))
|
||||
goto stall;
|
||||
|
||||
if (tmp) {
|
||||
|
|
@ -1176,7 +1176,7 @@ static void handle_setup(struct at91_udc *udc, struct at91_ep *ep, u32 csr)
|
|||
| USB_REQ_SET_FEATURE:
|
||||
tmp = w_index & USB_ENDPOINT_NUMBER_MASK;
|
||||
ep = &udc->ep[tmp];
|
||||
if (w_value != USB_ENDPOINT_HALT || tmp > NUM_ENDPOINTS)
|
||||
if (w_value != USB_ENDPOINT_HALT || tmp >= NUM_ENDPOINTS)
|
||||
goto stall;
|
||||
if (!ep->desc || ep->is_iso)
|
||||
goto stall;
|
||||
|
|
@ -1195,7 +1195,7 @@ static void handle_setup(struct at91_udc *udc, struct at91_ep *ep, u32 csr)
|
|||
| USB_REQ_CLEAR_FEATURE:
|
||||
tmp = w_index & USB_ENDPOINT_NUMBER_MASK;
|
||||
ep = &udc->ep[tmp];
|
||||
if (w_value != USB_ENDPOINT_HALT || tmp > NUM_ENDPOINTS)
|
||||
if (w_value != USB_ENDPOINT_HALT || tmp >= NUM_ENDPOINTS)
|
||||
goto stall;
|
||||
if (tmp == 0)
|
||||
goto succeed;
|
||||
|
|
|
|||
Loading…
Reference in a new issue