Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1688211 > unrolled thread

[PATCH 3.2 16/95] USB: uss720: fix NULL-deref at probe

Started byBen Hutchings <ben@decadent.org.uk>
First post2017-07-16 16:00 +0200
Last post2017-07-16 16:00 +0200
Articles 1 — 1 participant

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 3.2 16/95] USB: uss720: fix NULL-deref at probe Ben Hutchings <ben@decadent.org.uk> - 2017-07-16 16:00 +0200

#1688211 — [PATCH 3.2 16/95] USB: uss720: fix NULL-deref at probe

FromBen Hutchings <ben@decadent.org.uk>
Date2017-07-16 16:00 +0200
Subject[PATCH 3.2 16/95] USB: uss720: fix NULL-deref at probe
Message-ID<u3Sfx-89R-29@gated-at.bofh.it>
3.2.91-rc1 review patch.  If anyone has any objections, please let me know.

------------------

From: Johan Hovold <johan@kernel.org>

commit f259ca3eed6e4b79ac3d5c5c9fb259fb46e86217 upstream.

Make sure to check the number of endpoints to avoid dereferencing a
NULL-pointer or accessing memory beyond the endpoint array should a
malicious device lack the expected endpoints.

Note that the endpoint access that causes the NULL-deref is currently
only used for debugging purposes during probe so the oops only happens
when dynamic debugging is enabled. This means the driver could be
rewritten to continue to accept device with only two endpoints, should
such devices exist.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 drivers/usb/misc/uss720.c | 5 +++++
 1 file changed, 5 insertions(+)

--- a/drivers/usb/misc/uss720.c
+++ b/drivers/usb/misc/uss720.c
@@ -704,6 +704,11 @@ static int uss720_probe(struct usb_inter
 
 	interface = intf->cur_altsetting;
 
+	if (interface->desc.bNumEndpoints < 3) {
+		usb_put_dev(usbdev);
+		return -ENODEV;
+	}
+
 	/*
 	 * Allocate parport interface 
 	 */

[toc] | [standalone]


Back to top | Article view | linux.kernel


csiph-web