X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=kernel%2Fdrivers%2Finput%2Ftablet%2Fgtco.c;fp=kernel%2Fdrivers%2Finput%2Ftablet%2Fgtco.c;h=7c18249d6c8e820e3fe86ffa66196164dbef2d3f;hb=52f993b8e89487ec9ee15a7fb4979e0f09a45b27;hp=3a7f3a4a439635064a4e8ca78e1e7860b9072a47;hpb=c189ccac5702322ed843fe17057035b7222a59b6;p=kvmfornfv.git diff --git a/kernel/drivers/input/tablet/gtco.c b/kernel/drivers/input/tablet/gtco.c index 3a7f3a4a4..7c18249d6 100644 --- a/kernel/drivers/input/tablet/gtco.c +++ b/kernel/drivers/input/tablet/gtco.c @@ -858,6 +858,14 @@ static int gtco_probe(struct usb_interface *usbinterface, 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_interface *usbinterface, * 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;