summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-07-21 12:13:18 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-07-24 08:32:57 +0200
commit43ab9db1b1f20d67bf34e561fadb5fc1d8801e06 (patch)
tree80f1dc86e109de5cbaa8720b19f9c927b28e6b60
parentbfb7aa1e191628699b87b1a5b8428e454728d435 (diff)
downloadbarebox-43ab9db1b1f20d67bf34e561fadb5fc1d8801e06.tar.gz
barebox-43ab9db1b1f20d67bf34e561fadb5fc1d8801e06.tar.xz
USB: gadget: fsl_udc: Be more tolerant in fsl_ep_dequeue
When an endpoint hasn't been enabled ep->desc is NULL and fsl_ep_dequeue crashes with a NULL pointer dereference. Check ep->desc before continuing. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/usb/gadget/fsl_udc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/gadget/fsl_udc.c b/drivers/usb/gadget/fsl_udc.c
index 5266fb694b..5a625d19ca 100644
--- a/drivers/usb/gadget/fsl_udc.c
+++ b/drivers/usb/gadget/fsl_udc.c
@@ -1280,7 +1280,7 @@ static int fsl_ep_dequeue(struct usb_ep *_ep, struct usb_request *_req)
int ep_num, stopped, ret = 0;
u32 epctrl;
- if (!_ep || !_req)
+ if (!_ep || !_req || !ep->desc)
return -EINVAL;
stopped = ep->stopped;