Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Input: ims-pcu - sanity check against missing interfaces

A malicious device missing interface can make the driver oops.
Add sanity checking.

Signed-off-by: Oliver Neukum <ONeukum@suse.com>
CC: stable@vger.kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

authored by

Oliver Neukum and committed by
Dmitry Torokhov
a0ad220c 9aa40426

+4
+4
drivers/input/misc/ims-pcu.c
··· 1663 1663 1664 1664 pcu->ctrl_intf = usb_ifnum_to_if(pcu->udev, 1665 1665 union_desc->bMasterInterface0); 1666 + if (!pcu->ctrl_intf) 1667 + return -EINVAL; 1666 1668 1667 1669 alt = pcu->ctrl_intf->cur_altsetting; 1668 1670 pcu->ep_ctrl = &alt->endpoint[0].desc; ··· 1672 1670 1673 1671 pcu->data_intf = usb_ifnum_to_if(pcu->udev, 1674 1672 union_desc->bSlaveInterface0); 1673 + if (!pcu->data_intf) 1674 + return -EINVAL; 1675 1675 1676 1676 alt = pcu->data_intf->cur_altsetting; 1677 1677 if (alt->desc.bNumEndpoints != 2) {