diff options
-rw-r--r-- | patches/cve/CVE-2017-16532.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/patches/cve/CVE-2017-16532.patch b/patches/cve/CVE-2017-16532.patch new file mode 100644 index 0000000..b72f9e2 --- /dev/null +++ b/patches/cve/CVE-2017-16532.patch | |||
@@ -0,0 +1,49 @@ | |||
1 | From 8cf061d919e2102d0de0379bafea6cce1405d786 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alan Stern <stern@rowland.harvard.edu> | ||
3 | Date: Fri, 29 Sep 2017 10:54:24 -0400 | ||
4 | Subject: usb: usbtest: fix NULL pointer dereference | ||
5 | |||
6 | commit 7c80f9e4a588f1925b07134bb2e3689335f6c6d8 upstream. | ||
7 | |||
8 | If the usbtest driver encounters a device with an IN bulk endpoint but | ||
9 | no OUT bulk endpoint, it will try to dereference a NULL pointer | ||
10 | (out->desc.bEndpointAddress). The problem can be solved by adding a | ||
11 | missing test. | ||
12 | |||
13 | Upstream-Status: Backport [https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-4.1.y&id=8cf061d919e2102d0de0379bafea6cce1405d786] | ||
14 | CVE: CVE-2017-16532 | ||
15 | |||
16 | Signed-off-by: Alan Stern <stern@rowland.harvard.edu> | ||
17 | Reported-by: Andrey Konovalov <andreyknvl@google.com> | ||
18 | Tested-by: Andrey Konovalov <andreyknvl@google.com> | ||
19 | Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> | ||
20 | Cc: Ben Hutchings <ben.hutchings@codethink.co.uk> | ||
21 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
22 | Signed-off-by: Adrian Stratulat <adrian.stratulat@enea.com> | ||
23 | --- | ||
24 | drivers/usb/misc/usbtest.c | 5 +++-- | ||
25 | 1 file changed, 3 insertions(+), 2 deletions(-) | ||
26 | |||
27 | diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c | ||
28 | index d94927e5623b..e31f72b3a22c 100644 | ||
29 | --- a/drivers/usb/misc/usbtest.c | ||
30 | +++ b/drivers/usb/misc/usbtest.c | ||
31 | @@ -182,12 +182,13 @@ found: | ||
32 | return tmp; | ||
33 | } | ||
34 | |||
35 | - if (in) { | ||
36 | + if (in) | ||
37 | dev->in_pipe = usb_rcvbulkpipe(udev, | ||
38 | in->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK); | ||
39 | + if (out) | ||
40 | dev->out_pipe = usb_sndbulkpipe(udev, | ||
41 | out->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK); | ||
42 | - } | ||
43 | + | ||
44 | if (iso_in) { | ||
45 | dev->iso_in = &iso_in->desc; | ||
46 | dev->in_iso_pipe = usb_rcvisocpipe(udev, | ||
47 | -- | ||
48 | cgit 1.2-0.3.lf.el7 | ||
49 | |||