linux/drivers/net/usb
tom.leiming@gmail.com 0956a8c20b usbnet: increase URB reference count before usb_unlink_urb
Commit 4231d47e6fe69f061f96c98c30eaf9fb4c14b96d(net/usbnet: avoid
recursive locking in usbnet_stop()) fixes the recursive locking
problem by releasing the skb queue lock, but it makes usb_unlink_urb
racing with defer_bh, and the URB to being unlinked may be freed before
or during calling usb_unlink_urb, so use-after-free problem may be
triggerd inside usb_unlink_urb.

The patch fixes the use-after-free problem by increasing URB
reference count with skb queue lock held before calling
usb_unlink_urb, so the URB won't be freed until return from
usb_unlink_urb.

Cc: stable@kernel.org
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Oliver Neukum <oliver@neukum.org>
Reported-by: Dave Jones <davej@redhat.com>
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-03-22 19:32:34 -04:00
..
asix.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-03-18 23:29:41 -04:00
catc.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
cdc-phonet.c Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2012-01-07 12:03:30 -08:00
cdc_eem.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
cdc_ether.c Move Logitech Harmony 900 from cdc_ether to zaurus 2012-02-22 15:50:23 -05:00
cdc_ncm.c cdc_ncm: avoid discarding datagrams in rx path 2012-03-16 02:08:36 -07:00
cdc_subset.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
cx82310_eth.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
dm9601.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
gl620a.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
hso.c tty and serial merge for 3.4-rc1 2012-03-20 11:24:39 -07:00
int51x1.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
ipheth.c ipheth: Add iPhone 4S 2012-02-15 14:50:16 -05:00
kalmia.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
kaweth.c usb/kaweth: print MAC via printk format specifier 2012-02-24 15:41:00 -05:00
Kconfig net: qmi_wwan: fix build error due to cdc-wdm dependecy 2012-03-19 18:17:18 -04:00
lg-vl600.c Merge branch 'driver-core-next' into Linux 3.2 2012-01-06 11:42:52 -08:00
Makefile net: usb: qmi_wwan: New driver for Huawei QMI based WWAN devices 2012-03-09 13:09:17 -08:00
mcs7830.c mcs7830: unify return value of .ndo_set_mac_address if address is invalid 2012-02-23 17:03:20 -05:00
net1080.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
pegasus.c drivers/net: Remove alloc_etherdev error messages 2012-01-31 16:20:48 -05:00
pegasus.h
plusb.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
qmi_wwan.c net: qmi_wwan: add support for ZTE MF820D 2012-03-16 13:38:45 -07:00
rndis_host.c USB: convert drivers/net/* to use module_usb_driver() 2011-11-18 09:44:20 -08:00
rtl8150.c drivers/net: Remove alloc_etherdev error messages 2012-01-31 16:20:48 -05:00
sierra_net.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-01-09 14:46:52 -08:00
smsc75xx.c net: replace random_ether_addr() with eth_hw_addr_random() 2012-02-15 15:34:16 -05:00
smsc75xx.h
smsc95xx.c net: replace random_ether_addr() with eth_hw_addr_random() 2012-02-15 15:34:16 -05:00
smsc95xx.h
usbnet.c usbnet: increase URB reference count before usb_unlink_urb 2012-03-22 19:32:34 -04:00
zaurus.c Move Logitech Harmony 900 from cdc_ether to zaurus 2012-02-22 15:50:23 -05:00