]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/4.9.30/watchdog-pcwd_usb-fix-null-deref-at-probe.patch
Linux 4.14.95
[thirdparty/kernel/stable-queue.git] / releases / 4.9.30 / watchdog-pcwd_usb-fix-null-deref-at-probe.patch
1 From 46c319b848268dab3f0e7c4a5b6e9146d3bca8a4 Mon Sep 17 00:00:00 2001
2 From: Johan Hovold <johan@kernel.org>
3 Date: Mon, 13 Mar 2017 13:49:45 +0100
4 Subject: watchdog: pcwd_usb: fix NULL-deref at probe
5
6 From: Johan Hovold <johan@kernel.org>
7
8 commit 46c319b848268dab3f0e7c4a5b6e9146d3bca8a4 upstream.
9
10 Make sure to check the number of endpoints to avoid dereferencing a
11 NULL-pointer should a malicious device lack endpoints.
12
13 Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
14 Signed-off-by: Johan Hovold <johan@kernel.org>
15 Reviewed-by: Guenter Roeck <linux@roeck-us.net>
16 Signed-off-by: Guenter Roeck <linux@roeck-us.net>
17 Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
18 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
19
20 ---
21 drivers/watchdog/pcwd_usb.c | 3 +++
22 1 file changed, 3 insertions(+)
23
24 --- a/drivers/watchdog/pcwd_usb.c
25 +++ b/drivers/watchdog/pcwd_usb.c
26 @@ -630,6 +630,9 @@ static int usb_pcwd_probe(struct usb_int
27 return -ENODEV;
28 }
29
30 + if (iface_desc->desc.bNumEndpoints < 1)
31 + return -ENODEV;
32 +
33 /* check out the endpoint: it has to be Interrupt & IN */
34 endpoint = &iface_desc->endpoint[0].desc;
35