Patch "Input: gtco - fix crash on detecting device without endpoints" has been added to the 4.5-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
Input: gtco - fix crash on detecting device without endpoints
to the 4.5-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
input-gtco-fix-crash-on-detecting-device-without-endpoints.patch
and it can be found in the queue-4.5 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
162f98dea487206d9ab79fc12ed64700667a894dMon Sep 17 00:00:00 2001
From: Vladis Dronov <[email protected]>
Date: Thu, 31 Mar 2016 10:53:42 -0700
Subject: Input: gtco - fix crash on detecting device without endpoints
From: Vladis Dronov <[email protected]>
commit 162f98dea487206d9ab79fc12ed64700667a894d upstream.
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
--- drivers/input/tablet/gtco.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
drivers/input/tablet/gtco.c +9 -1
@@ -858,6 +858,14 @@ static int gtco_probe(struct usb_interfa 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 * this device only has one interrupt endpoint
@@ -879,7 +887,7 @@ static int gtco_probe(struct usb_interfa* HID report descriptor */ if (usb_get_extra_descriptor (usbinterface->cur_altsetting, -HID_DEVICE_TYPE , &hid_desc) !=0 ){ +HID_DEVICE_TYPE , &hid_desc) !=0 ) {dev_err (&usbinterface->dev,"Can't retrieve exta USB descriptor to get hid report descriptor length\n" ); error = -EIO ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.5/usbvision-revert-commit-588afcc1.patch queue-4.5/input-gtco-fix-crash-on-detecting-device-without-endpoints.patch