diff options
| author | Mayank Rana <mrana@codeaurora.org> | 2015-04-28 10:39:56 -0700 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-22 11:06:47 -0700 |
| commit | 7d2a036a4e375342d673bf9662e56b190cc9dd55 (patch) | |
| tree | 37446d6335ffebf1f5ff07e38c3a9b491152f87a | |
| parent | 710341d1cf193af882e8003115a909867a6d764e (diff) | |
dwc3: gadget: Add NULL check against endpoint's desc in set_halt()
In few instances, dwc3_gadget_ep_set_halt() API is called after USB
endpoint is disabled which results into device crash with NULL pointer
dereference. USB endpoint's descriptors are set to NULL as part of USB
endpoint disable functionality. Hence fix this issue by adding NULL
pointer check against endpoint's descriptor.
CRs-Fixed: 829034
Change-Id: I2e1f67571ed202fab21655bd8f13fc54706419a7
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
| -rw-r--r-- | drivers/usb/dwc3/gadget.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 7b3dd4f06f3e..0dceef917c8e 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -1432,6 +1432,11 @@ static int dwc3_gadget_ep_set_halt(struct usb_ep *ep, int value) int ret; + if (!ep->desc) { + dev_err(dwc->dev, "(%s)'s desc is NULL.\n", dep->name); + return -EINVAL; + } + spin_lock_irqsave(&dwc->lock, flags); dbg_event(dep->number, "HALT", value); ret = __dwc3_gadget_ep_set_halt(dep, value, false); |
