diff options
author | Justin M. Forbes <jforbes@fedoraproject.org> | 2017-11-08 08:11:32 -0600 |
---|---|---|
committer | Justin M. Forbes <jforbes@fedoraproject.org> | 2017-11-08 08:11:32 -0600 |
commit | af239e2213f92452021ad55b5013103c77e6fe66 (patch) | |
tree | f6f0450e1cd7333a8540dc671e7612cb078a5a37 /0001-usb-usbtest-fix-NULL-pointer-dereference.patch | |
parent | 3701134e1beeffaf4e7121647d09e175436d3800 (diff) | |
download | kernel-af239e2213f92452021ad55b5013103c77e6fe66.tar.gz kernel-af239e2213f92452021ad55b5013103c77e6fe66.tar.xz kernel-af239e2213f92452021ad55b5013103c77e6fe66.zip |
Fix CVE-2017-16532 and CVE-2017-16538
Diffstat (limited to '0001-usb-usbtest-fix-NULL-pointer-dereference.patch')
-rw-r--r-- | 0001-usb-usbtest-fix-NULL-pointer-dereference.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/0001-usb-usbtest-fix-NULL-pointer-dereference.patch b/0001-usb-usbtest-fix-NULL-pointer-dereference.patch new file mode 100644 index 000000000..acc03ec7d --- /dev/null +++ b/0001-usb-usbtest-fix-NULL-pointer-dereference.patch @@ -0,0 +1,41 @@ +From 7c80f9e4a588f1925b07134bb2e3689335f6c6d8 Mon Sep 17 00:00:00 2001 +From: Alan Stern <stern@rowland.harvard.edu> +Date: Fri, 29 Sep 2017 10:54:24 -0400 +Subject: [PATCH] usb: usbtest: fix NULL pointer dereference + +If the usbtest driver encounters a device with an IN bulk endpoint but +no OUT bulk endpoint, it will try to dereference a NULL pointer +(out->desc.bEndpointAddress). The problem can be solved by adding a +missing test. + +Signed-off-by: Alan Stern <stern@rowland.harvard.edu> +Reported-by: Andrey Konovalov <andreyknvl@google.com> +Tested-by: Andrey Konovalov <andreyknvl@google.com> +Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> +--- + drivers/usb/misc/usbtest.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c +index 113e38bfe0ef..b3fc602b2e24 100644 +--- a/drivers/usb/misc/usbtest.c ++++ b/drivers/usb/misc/usbtest.c +@@ -202,12 +202,13 @@ get_endpoints(struct usbtest_dev *dev, struct usb_interface *intf) + return tmp; + } + +- if (in) { ++ if (in) + dev->in_pipe = usb_rcvbulkpipe(udev, + in->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK); ++ if (out) + dev->out_pipe = usb_sndbulkpipe(udev, + out->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK); +- } ++ + if (iso_in) { + dev->iso_in = &iso_in->desc; + dev->in_iso_pipe = usb_rcvisocpipe(udev, +-- +2.13.6 + |