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

Commit 162f98de authored by Vladis Dronov's avatar Vladis Dronov Committed by Dmitry Torokhov
Browse files

Input: gtco - fix crash on detecting device without endpoints

The gtco driver expects at least one valid endpoint. If given malicious
descriptors that specify 0 for the number of endpoints, it will crash in
the probe function. Ensure there is at least one endpoint on the interface
before using it.

Also let's fix a minor coding style issue.

The full correct report of this issue can be found in the public
Red Hat Bugzilla:

https://bugzilla.redhat.com/show_bug.cgi?id=1283385



Reported-by: default avatarRalf Spenneberg <ralf@spenneberg.net>
Signed-off-by: default avatarVladis Dronov <vdronov@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent d314e9e8
Loading
Loading
Loading
Loading
+9 −1
Original line number Original line Diff line number Diff line
@@ -858,6 +858,14 @@ static int gtco_probe(struct usb_interface *usbinterface,
		goto err_free_buf;
		goto err_free_buf;
	}
	}


	/* Sanity check that a device has an endpoint */
	if (usbinterface->altsetting[0].desc.bNumEndpoints < 1) {
		dev_err(&usbinterface->dev,
			"Invalid number of endpoints\n");
		error = -EINVAL;
		goto err_free_urb;
	}

	/*
	/*
	 * The endpoint is always altsetting 0, we know this since we know
	 * The endpoint is always altsetting 0, we know this since we know
	 * this device only has one interrupt endpoint
	 * this device only has one interrupt endpoint