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

USB: idmouse: fix interface sanity checks

Make sure to use the current alternate setting when verifying the
interface descriptors to avoid binding to an invalid interface.

Failing to do so could cause the driver to misbehave or trigger a WARN()
in usb_submit_urb() that kernels with panic_on_warn set would choke on.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://lore.kernel.org/r/20191210112601.3561-4-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Johan Hovold and committed by
Greg Kroah-Hartman
59920635 7c5a2df3

+1 -1
+1 -1
drivers/usb/misc/idmouse.c
··· 322 322 int result; 323 323 324 324 /* check if we have gotten the data or the hid interface */ 325 - iface_desc = &interface->altsetting[0]; 325 + iface_desc = interface->cur_altsetting; 326 326 if (iface_desc->desc.bInterfaceClass != 0x0A) 327 327 return -ENODEV; 328 328