summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorJohan Hovold <johan@kernel.org>2020-01-10 11:55:47 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-01-29 10:24:39 +0100
commitf0501a3ec80edfe73ff51ff7c29f104577eb7ea6 (patch)
tree4c3b7eeee0809ce5a7290866dc181b418b034660 /drivers/input
parent050e3eb74e561c70598077c8fcdac07ea293ae3f (diff)
Input: pegasus_notetaker - fix endpoint sanity check
commit bcfcb7f9b480dd0be8f0df2df17340ca92a03b98 upstream. The driver was checking the number of endpoints of the first alternate setting instead of the current one, something which could be used by a malicious device (or USB descriptor fuzzer) to trigger a NULL-pointer dereference. Fixes: 1afca2b66aac ("Input: add Pegasus Notetaker tablet driver") Signed-off-by: Johan Hovold <johan@kernel.org> Acked-by: Martin Kepplinger <martink@posteo.de> Acked-by: Vladis Dronov <vdronov@redhat.com> Link: https://lore.kernel.org/r/20191210113737.4016-2-johan@kernel.org Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/tablet/pegasus_notetaker.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/input/tablet/pegasus_notetaker.c b/drivers/input/tablet/pegasus_notetaker.c
index 47de5a81172f..2319144802c9 100644
--- a/drivers/input/tablet/pegasus_notetaker.c
+++ b/drivers/input/tablet/pegasus_notetaker.c
@@ -260,7 +260,7 @@ static int pegasus_probe(struct usb_interface *intf,
return -ENODEV;
/* Sanity check that the device has an endpoint */
- if (intf->altsetting[0].desc.bNumEndpoints < 1) {
+ if (intf->cur_altsetting->desc.bNumEndpoints < 1) {
dev_err(&intf->dev, "Invalid number of endpoints\n");
return -EINVAL;
}