linux/drivers/usb/serial
Johan Hovold 71ccb9b019 USB: ftdi_sio: fix use-after-free in TIOCMIWAIT
Use the port wait queue and make sure to check the serial disconnected
flag before accessing private port data after waking up.

This is is needed as the private port data (including the wait queue
itself) can be gone when waking up after a disconnect.

When switching to tty ports, some lifetime assumptions were changed.
Specifically, close can now be called before the final tty reference is
dropped as part of hangup at device disconnect. Even with the ftdi
private-data refcounting this means that the port private data can be
freed while a process is sleeping on modem-status changes and thus
cannot be relied on to detect disconnects when woken up.

Cc: stable <stable@vger.kernel.org>
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-03-21 15:59:03 -07:00
..
aircable.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
ark3116.c USB: ark3116: fix use-after-free in TIOCMIWAIT 2013-03-21 15:59:02 -07:00
belkin_sa.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
belkin_sa.h
bus.c usb-core: remove CONFIG_HOTPLUG ifdefs 2012-11-21 13:27:16 -08:00
ch341.c USB: ch341: fix use-after-free in TIOCMIWAIT 2013-03-21 15:59:03 -07:00
console.c USB merge for 3.7-rc1 2012-10-01 13:23:01 -07:00
cp210x.c usb: serial: Add Rigblaster Advantage to device table 2013-03-12 08:54:41 -07:00
cyberjack.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
cypress_m8.c USB: cypress_m8: fix use-after-free in TIOCMIWAIT 2013-03-21 15:59:03 -07:00
cypress_m8.h
digi_acceleport.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
empeg.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
ezusb_convert.pl
f81232.c USB: f81232: fix use-after-free in TIOCMIWAIT 2013-03-21 15:59:03 -07:00
ftdi_sio_ids.h USB: ftdi_sio: add Zolix FTDI PID 2013-02-02 13:31:52 +01:00
ftdi_sio.c USB: ftdi_sio: fix use-after-free in TIOCMIWAIT 2013-03-21 15:59:03 -07:00
ftdi_sio.h USB: ftdi_sio: add support for FT-X series devices 2012-03-14 15:43:05 -07:00
funsoft.c USB: serial: funsoft.c: remove debug module parameter 2012-09-14 12:31:27 -07:00
garmin_gps.c USB: garmin_gps: fix memory leak on disconnect 2013-03-21 15:59:02 -07:00
generic.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
hp4x.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
io_16654.h
io_edgeport.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
io_edgeport.h
io_ionsp.h
io_tables.h USB: io_edgeport: fix port-data memory leak 2012-10-17 13:47:58 -07:00
io_ti.c USB: io_ti: fix get_icount for two port adapters 2013-03-21 15:59:02 -07:00
io_ti.h
io_usbvend.h
ipaq.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
ipw.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
ir-usb.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
iuu_phoenix.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
iuu_phoenix.h
Kconfig tty/serial patches for 3.9-rc1 2013-02-21 13:41:04 -08:00
keyspan_pda.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
keyspan_usa26msg.h
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
keyspan.c tty/serial patches for 3.9-rc1 2013-02-21 13:41:04 -08:00
keyspan.h USB: keyspan: fix NULL-pointer dereferences and memory leaks 2012-10-25 09:37:13 -07:00
kl5kusb105.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
kl5kusb105.h
kobil_sct.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
kobil_sct.h
Makefile usb: add driver for xsens motion trackers 2013-01-25 09:56:54 -08:00
Makefile-keyspan_pda_fw
mct_u232.c tty/serial patches for 3.9-rc1 2013-02-21 13:41:04 -08:00
mct_u232.h
metro-usb.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
mos7720.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
mos7840.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
moto_modem.c USB: serial: rework usb_serial_register/deregister_drivers() 2012-05-08 15:46:14 -07:00
navman.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
omninet.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
opticon.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
option.c USB: added support for Cinterion's products AH6 and PLS8 2013-03-07 12:29:09 +08:00
oti6858.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
oti6858.h
pl2303.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
pl2303.h USB: serial: pl2303: rm duplicate id 2011-11-15 10:06:15 -08:00
qcaux.c qcaux: add Franklin U600 2013-03-11 11:09:17 -07:00
qcserial.c qcserial: bind to DM/DIAG port on Gobi 1K devices 2013-03-13 08:50:42 -07:00
quatech2.c USB: quatech2: only write to the tty if the port is open. 2013-03-13 12:32:47 -07:00
safe_serial.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
siemens_mpi.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
sierra.c tty/serial patches for 3.9-rc1 2013-02-21 13:41:04 -08:00
spcp8x5.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
ssu100.c tty/serial patches for 3.9-rc1 2013-02-21 13:41:04 -08:00
symbolserial.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
ti_usb_3410_5052.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
ti_usb_3410_5052.h USB: serial: ti_usb_3410_5052: Add support for the FRI2 serial console 2012-05-11 15:14:07 -07:00
usb_debug.c USB: serial: rework usb_serial_register/deregister_drivers() 2012-05-08 15:46:14 -07:00
usb_wwan.c tty/serial patches for 3.9-rc1 2013-02-21 13:41:04 -08:00
usb-serial.c USB: serial: fix interface refcounting 2013-03-21 15:59:02 -07:00
usb-wwan.h USB: usb-wwan: fix multiple memory leaks in error paths 2012-10-25 09:37:13 -07:00
visor.c USB: Serial: visor.c: remove debug module parameter 2012-09-18 10:16:28 +01:00
visor.h
vivopay-serial.c USB: serial: remove driver version information 2012-10-31 12:48:06 -07:00
whiteheat.c USB: whiteheat: fix port-data memory leak 2012-10-25 09:36:57 -07:00
whiteheat.h
xsens_mt.c usb: add driver for xsens motion trackers 2013-01-25 09:56:54 -08:00
zio.c USB: serial: rework usb_serial_register/deregister_drivers() 2012-05-08 15:46:14 -07:00
zte_ev.c USB: serial: add zte_ev.c driver 2012-09-13 10:15:14 -07:00