projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9aa4042
)
Input: ims-pcu - sanity check against missing interfaces
author
Oliver Neukum
<
[email protected]
>
Thu, 17 Mar 2016 21:00:17 +0000
(14:00 -0700)
committer
Dmitry Torokhov
<
[email protected]
>
Thu, 17 Mar 2016 21:16:57 +0000
(14:16 -0700)
A malicious device missing interface can make the driver oops.
Add sanity checking.
Signed-off-by: Oliver Neukum <
[email protected]
>
CC:
[email protected]
Signed-off-by: Dmitry Torokhov <
[email protected]
>
drivers/input/misc/ims-pcu.c
patch
|
blob
|
history
diff --git
a/drivers/input/misc/ims-pcu.c
b/drivers/input/misc/ims-pcu.c
index ac1fa5f4458052a97d5e8793123ce6b54623a9fa..9c0ea36913b4a98293911f62a2d649dc08a855cd 100644
(file)
--- a/
drivers/input/misc/ims-pcu.c
+++ b/
drivers/input/misc/ims-pcu.c
@@
-1663,6
+1663,8
@@
static int ims_pcu_parse_cdc_data(struct usb_interface *intf, struct ims_pcu *pc
pcu->ctrl_intf = usb_ifnum_to_if(pcu->udev,
union_desc->bMasterInterface0);
+ if (!pcu->ctrl_intf)
+ return -EINVAL;
alt = pcu->ctrl_intf->cur_altsetting;
pcu->ep_ctrl = &alt->endpoint[0].desc;
@@
-1670,6
+1672,8
@@
static int ims_pcu_parse_cdc_data(struct usb_interface *intf, struct ims_pcu *pc
pcu->data_intf = usb_ifnum_to_if(pcu->udev,
union_desc->bSlaveInterface0);
+ if (!pcu->data_intf)
+ return -EINVAL;
alt = pcu->data_intf->cur_altsetting;
if (alt->desc.bNumEndpoints != 2) {