usb: gadget: composite: don't try standard handling for non-standard requests
If a non-standard request is processed and its parameters just happen to match those of some standard request, the logic of composite_setup() can be fooled, so don't even try any switch cases, just go to the proper place where unknown requests are handled. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
eac68e8f97
commit
232c0102e8
|
@ -1472,6 +1472,13 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
|
|||
req->length = 0;
|
||||
gadget->ep0->driver_data = cdev;
|
||||
|
||||
/*
|
||||
* Don't let non-standard requests match any of the cases below
|
||||
* by accident.
|
||||
*/
|
||||
if ((ctrl->bRequestType & USB_TYPE_MASK) != USB_TYPE_STANDARD)
|
||||
goto unknown;
|
||||
|
||||
switch (ctrl->bRequest) {
|
||||
|
||||
/* we handle all standard USB descriptors */
|
||||
|
|
Loading…
Reference in New Issue