patch "USB: digi_acceleport: do sanity checking for the number of ports" added to usb-linus
Subsystems (3)
This is a note to let you know that I've just added the patch titled
USB: digi_acceleport: do sanity checking for the number of ports
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
Quoted 1 line
From
5a07975ad0a36708c6b0a5b9fea1ff811d0b0c1fMon Sep 17 00:00:00 2001
From: Oliver Neukum <[email protected]>
Date: Thu, 31 Mar 2016 12:04:26 -0400
Subject: USB: digi_acceleport: do sanity checking for the number of ports
The driver can be crashed with devices that expose crafted descriptors with too few endpoints.
See: http://seclists.org/bugtraq/2016/Mar/61
--- drivers/usb/serial/digi_acceleport.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
drivers/usb/serial/digi_acceleport.c +19 -0
@@ -1251,8 +1251,27 @@ static int digi_port_init(struct usb_serial_port *port, unsigned port_num)static int digi_startup (struct usb_serial *serial) { +struct device *dev = &serial->interface->dev;struct digi_serial *serial_priv;int ret; +int i; + +/* check whether the device has the expected number of endpoints */ +if (serial->num_port_pointers < serial->type->num_ports +1 ) { +dev_err (dev,"OOB endpoints missing\n" ); +return -ENODEV ; + } + +for (i =0 ; i < serial->type->num_ports +1 ; i++) { +if (!serial->port[i]->read_urb) { +dev_err (dev,"bulk-in endpoint missing\n" ); +return -ENODEV ; + } +if (!serial->port[i]->write_urb) { +dev_err (dev,"bulk-out endpoint missing\n" ); +return -ENODEV ; + } + } serial_priv =kzalloc (sizeof (*serial_priv),GFP_KERNEL );if (!serial_priv)
Signature · 1 line
2.7.4