summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLucas Stach <dev@lynxeye.de>2016-07-06 20:44:35 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2016-07-07 09:35:53 +0200
commit81a54afd22ceb6fb7a70cc8be6368831a4692135 (patch)
treee92881350b20bf180636c12c7db01f809007ec7a /drivers
parent04f3cde15146e49339e20dac6986de303d1e7e31 (diff)
downloadbarebox-81a54afd22ceb6fb7a70cc8be6368831a4692135.tar.gz
barebox-81a54afd22ceb6fb7a70cc8be6368831a4692135.tar.xz
USB: gadget: composite: avoid possible NULL ptr dereference
Check if g is valid before trying to dereference it. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/gadget/composite.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index 9e38ac4942..1cfc49d1c5 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -86,7 +86,7 @@ int config_ep_by_speed(struct usb_gadget *g,
struct usb_function *f,
struct usb_ep *_ep)
{
- struct usb_composite_dev *cdev = get_gadget_data(g);
+ struct usb_composite_dev *cdev;
struct usb_endpoint_descriptor *chosen_desc = NULL;
struct usb_descriptor_header **speed_desc = NULL;
@@ -98,6 +98,8 @@ int config_ep_by_speed(struct usb_gadget *g,
if (!g || !f || !_ep)
return -EIO;
+ cdev = get_gadget_data(g);
+
/* select desired speed */
switch (g->speed) {
case USB_SPEED_SUPER: