Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 122d6a34 authored by Cameron Gutman's avatar Cameron Gutman Committed by Dmitry Torokhov
Browse files

Input: xpad - validate USB endpoint type during probe



We should only see devices with interrupt endpoints. Ignore any other
endpoints that we find, so we don't send try to send them interrupt URBs
and trigger a WARN down in the USB stack.

Reported-by: default avatarAndrey Konovalov <andreyknvl@google.com>
Tested-by: default avatarAndrey Konovalov <andreyknvl@google.com>
Cc: <stable@vger.kernel.org> # c01b5e74 Input: xpad - don't depend on endpoint order
Signed-off-by: default avatarCameron Gutman <aicommander@gmail.com>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 39467fc1
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -1750,11 +1750,13 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
		struct usb_endpoint_descriptor *ep =
				&intf->cur_altsetting->endpoint[i].desc;

		if (usb_endpoint_xfer_int(ep)) {
			if (usb_endpoint_dir_in(ep))
				ep_irq_in = ep;
			else
				ep_irq_out = ep;
		}
	}

	if (!ep_irq_in || !ep_irq_out) {
		error = -ENODEV;