1
linux/drivers/usb/serial
Johan Hovold eb8878a881 USB: serial: use port endpoint size to determine if ep is available
It is possible to have a multi-port device with a port lacking an in or
out bulk endpoint. Only checking for num_bulk_in or num_bulk_out is thus not
sufficient to determine whether a specific port has an in or out bulk
endpoint.

This fixes potential null pointer dereferences in the generic open and
write routines, as well as access to uninitialised fifo in write_room
and chars_in_buffer.

Also let write fail with ENODEV (instead of 0) on missing out endpoint
(also on zero-length writes).

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-19 07:24:03 -07:00
..
aircable.c USB: remove references to port->port.count from the serial drivers 2010-03-02 14:55:12 -08:00
ark3116.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
belkin_sa.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
belkin_sa.h
bus.c
ch341.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
ChangeLog.history
console.c
cp210x.c USB: cp210x: Add 81E8 (Zephyr Bioharness) 2010-03-02 14:55:01 -08:00
cyberjack.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
cypress_m8.c Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
cypress_m8.h
digi_acceleport.c USB: remove references to port->port.count from the serial drivers 2010-03-02 14:55:12 -08:00
empeg.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
ezusb_convert.pl
ezusb.c
ftdi_sio_ids.h USB: serial: ftdi: add CONTEC vendor and product id 2010-03-02 14:55:13 -08:00
ftdi_sio.c USB: ftdi_sio: remove obsolete check in unthrottle 2010-03-02 14:55:21 -08:00
ftdi_sio.h USB: ftdi_sio: correct spelling in header files 2010-03-02 14:54:35 -08:00
funsoft.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
garmin_gps.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
generic.c USB: serial: use port endpoint size to determine if ep is available 2010-03-19 07:24:03 -07:00
hp4x.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
io_16654.h
io_edgeport.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
io_edgeport.h
io_ionsp.h
io_tables.h USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
io_ti.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
io_ti.h
io_usbvend.h
ipaq.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
ipaq.h
ipw.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
ir-usb.c USB: remove references to port->port.count from the serial drivers 2010-03-02 14:55:12 -08:00
iuu_phoenix.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
iuu_phoenix.h
Kconfig USB: qcaux: driver for auxiliary serial ports on Qualcomm devices 2010-03-02 14:55:19 -08:00
keyspan_pda.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 2010-03-03 08:48:58 -08:00
keyspan_usa26msg.h
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
keyspan.c USB: remove references to port->port.count from the serial drivers 2010-03-02 14:55:12 -08:00
keyspan.h USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
kl5kusb105.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
kl5kusb105.h
kobil_sct.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
kobil_sct.h
Makefile USB: qcaux: driver for auxiliary serial ports on Qualcomm devices 2010-03-02 14:55:19 -08:00
Makefile-keyspan_pda_fw
mct_u232.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
mct_u232.h USB: serial mct_usb232: move DMA buffers to heap 2010-03-02 14:53:06 -08:00
mos7720.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
mos7840.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
moto_modem.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
navman.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
omninet.c USB: Convert concatenated __FILE__ to %s, __FILE__ 2010-03-02 14:54:59 -08:00
opticon.c Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
option.c USB: option: add Longcheer/Longsung vendor ID 2010-03-02 14:55:16 -08:00
oti6858.c USB: remove references to port->port.count from the serial drivers 2010-03-02 14:55:12 -08:00
oti6858.h
pl2303.c USB: pl2303: remove unnecessary reset of usb_device in urbs 2010-03-02 14:55:21 -08:00
pl2303.h
qcaux.c USB: qcaux: driver for auxiliary serial ports on Qualcomm devices 2010-03-02 14:55:19 -08:00
qcserial.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
safe_serial.c
siemens_mpi.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
sierra.c USB: remove references to port->port.count from the serial drivers 2010-03-02 14:55:12 -08:00
spcp8x5.c USB: remove references to port->port.count from the serial drivers 2010-03-02 14:55:12 -08:00
symbolserial.c Merge branch 'for-next' into for-linus 2010-03-08 16:55:37 +01:00
ti_usb_3410_5052.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
ti_usb_3410_5052.h
usb_debug.c USB serial: make USB device id constant 2010-03-02 14:54:16 -08:00
usb-serial.c tty: Fix various bogus WARN checks in the usb serial layer 2010-03-02 14:55:02 -08:00
visor.c USB: tty: Prune uses of tty_request_room in the USB layer 2010-03-02 14:55:12 -08:00
visor.h
vivopay-serial.c USB: serial: Add support for ViVOtech ViVOpay devices. 2010-03-02 14:54:57 -08:00
whiteheat.c USB: tty: sort out the request_room handling for whiteheat 2010-03-02 14:55:09 -08:00
whiteheat.h