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

Commit 3837836c authored by Cameron Gutman's avatar Cameron Gutman Committed by Sasha Levin
Browse files

Input: xpad - validate USB endpoint count during probe



[ Upstream commit caca925fca4fb30c67be88cacbe908eec6721e43 ]

This prevents a malicious USB device from causing an oops.

Signed-off-by: default avatarCameron Gutman <aicommander@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: default avatarSasha Levin <alexander.levin@verizon.com>
parent 06c742fb
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -1006,6 +1006,9 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
	int ep_irq_in_idx;
	int ep_irq_in_idx;
	int i, error;
	int i, error;


	if (intf->cur_altsetting->desc.bNumEndpoints != 2)
		return -ENODEV;

	for (i = 0; xpad_device[i].idVendor; i++) {
	for (i = 0; xpad_device[i].idVendor; i++) {
		if ((le16_to_cpu(udev->descriptor.idVendor) == xpad_device[i].idVendor) &&
		if ((le16_to_cpu(udev->descriptor.idVendor) == xpad_device[i].idVendor) &&
		    (le16_to_cpu(udev->descriptor.idProduct) == xpad_device[i].idProduct))
		    (le16_to_cpu(udev->descriptor.idProduct) == xpad_device[i].idProduct))