linux/drivers/usb/misc
Alan Stern 9f632afe4f USB: yurex: Fix protection fault after device removal
commit ef61eb43ad upstream.

The syzkaller USB fuzzer found a general-protection-fault bug in the
yurex driver.  The fault occurs when a device has been unplugged; the
driver's interrupt-URB handler logs an error message referring to the
device by name, after the device has been unregistered and its name
deallocated.

This problem is caused by the fact that the interrupt URB isn't
cancelled until the driver's private data structure is released, which
can happen long after the device is gone.  The cure is to make sure
that the interrupt URB is killed before yurex_disconnect() returns;
this is exactly the sort of thing that usb_poison_urb() was meant for.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reported-and-tested-by: syzbot+2eb9121678bdb36e6d57@syzkaller.appspotmail.com
CC: <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-08 07:21:43 +02:00
..
sisusbvga usb-misc: sisusbvga: remove redundant variable modey 2018-07-13 15:41:56 +02:00
adutux.c usb: adutux: use irqsave() in USB's complete callback 2018-06-28 19:36:06 +09:00
appledisplay.c usb: appledisplay: Add 27" Apple Cinema Display 2018-12-13 09:16:15 +01:00
chaoskey.c USB: chaoskey: Use kasprintf() over strcpy()/strcat() 2018-02-22 15:17:05 +01:00
cypress_cy7c63.c USB: move many drivers to use DEVICE_ATTR_RW 2018-01-24 08:49:51 +01:00
cytherm.c USB: misc: fix up some remaining DEVICE_ATTR() usages 2018-01-24 08:49:52 +01:00
ehset.c USB: misc: Remove redundant license text 2017-11-04 11:55:38 +01:00
emi26.c USB: misc: Remove redundant license text 2017-11-04 11:55:38 +01:00
emi62.c USB: misc: Remove redundant license text 2017-11-04 11:55:38 +01:00
ezusb.c USB: misc: Remove redundant license text 2017-11-04 11:55:38 +01:00
ftdi-elan.c USB: misc: Remove redundant license text 2017-11-04 11:55:38 +01:00
idmouse.c USB: misc: Remove redundant license text 2017-11-04 11:55:38 +01:00
iowarrior.c usb: iowarrior: remove intr_idx_lock 2018-06-28 19:36:06 +09:00
isight_firmware.c USB: misc: Remove redundant license text 2017-11-04 11:55:38 +01:00
Kconfig
ldusb.c usb: ldusb: use irqsave() in USB's complete callback 2018-06-28 19:36:06 +09:00
legousbtower.c usb: legousbtower: use irqsave() in USB's complete callback 2018-06-28 19:36:07 +09:00
lvstest.c USB: misc: Remove redundant license text 2017-11-04 11:55:38 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rio500_usb.h USB: misc: Remove redundant license text 2017-11-04 11:55:38 +01:00
rio500.c USB: misc: Remove redundant license text 2017-11-04 11:55:38 +01:00
trancevibrator.c USB: move many drivers to use DEVICE_ATTR_RW 2018-01-24 08:49:51 +01:00
usb_u132.h USB: misc: Remove redundant license text 2017-11-04 11:55:38 +01:00
usb251xb.c usb: usb251xb: fix to avoid potential NULL pointer dereference 2019-05-04 09:20:20 +02:00
usb3503.c usb: misc: usb3503: make sure reset is low for at least 100us 2018-01-11 18:39:52 +01:00
usb4604.c USB: misc: Remove redundant license text 2017-11-04 11:55:38 +01:00
usblcd.c USB: add SPDX identifiers to all remaining files in drivers/usb/ 2017-11-04 11:48:02 +01:00
usbsevseg.c USB: misc: fix up some remaining DEVICE_ATTR() usages 2018-01-24 08:49:52 +01:00
usbtest.c usb: usbtest: use irqsave() in USB's complete callback 2018-07-06 16:36:19 +02:00
uss720.c usb: misc: uss720: Fix two sleep-in-atomic-context bugs 2018-09-05 14:36:53 +02:00
yurex.c USB: yurex: Fix protection fault after device removal 2019-05-08 07:21:43 +02:00