linux/drivers/net/usb
Jesper Juhl 5b89db0e84 Net, USB, Option, hso: Do not dereference NULL pointer
In drivers/net/usb/hso.c::hso_create_bulk_serial_device() we have this
code:
...
	serial = kzalloc(sizeof(*serial), GFP_KERNEL);
	if (!serial)
		goto exit;
...
exit:
	hso_free_tiomget(serial);
...
hso_free_tiomget() directly dereferences its argument, which in the
example above is a NULL pointer, ouch.
I could just add a 'if (serial)' test at the 'exit' label, but since most
freeing functions in the kernel accept NULL pointers (and it seems like
this was also assumed here) I opted to instead change 'hso_free_tiomget()'
so that it is safe to call it with a NULL argument. I also modified the
function to get rid of a pointles conditional before the call to
'usb_free_urb()' since that function already tests for NULL itself -
besides fixing the NULL deref this change also buys us a few bytes in
size.
Before:
$ size drivers/net/usb/hso.o
   text    data     bss     dec     hex filename
  32200     592    9960   42752    a700 drivers/net/usb/hso.o
After:
$ size drivers/net/usb/hso.o
   text    data     bss     dec     hex filename
  32196     592    9960   42748    a6fc drivers/net/usb/hso.o

Signed-off-by: Jesper Juhl <jj@chaosbits.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2011-02-13 16:55:45 -08:00
..
asix.c asix: add USB ID for Logitec LAN-GTJ U2A 2010-12-17 11:50:20 -08:00
catc.c
cdc_eem.c
cdc_ether.c USB: cdc_ether: remove unneeded check 2010-12-31 11:11:38 -08:00
cdc_ncm.c USB CDC NCM errata updates for cdc_ncm host driver 2011-02-08 13:54:43 -08:00
cdc_subset.c
cdc-phonet.c
cx82310_eth.c
dm9601.c
gl620a.c
hso.c Net, USB, Option, hso: Do not dereference NULL pointer 2011-02-13 16:55:45 -08:00
int51x1.c
ipheth.c
kaweth.c USB NET KL5KUSB101: Fix mem leak in error path of kaweth_download_firmware() 2011-01-24 23:20:24 -08:00
Kconfig USB CDC NCM host driver 2010-12-06 12:59:03 -08:00
Makefile USB CDC NCM host driver 2010-12-06 12:59:03 -08:00
mcs7830.c USB: mcs7830: return negative if auto negotiate fails 2010-12-23 10:21:12 -08:00
net1080.c
pegasus.c drivers/net/usb: Remove unnecessary casts of netdev_priv 2010-11-17 10:36:52 -08:00
pegasus.h
plusb.c
rndis_host.c
rtl8150.c
sierra_net.c drivers/net: don't use flush_scheduled_work() 2010-12-12 16:45:14 +01:00
smsc75xx.c
smsc75xx.h
smsc95xx.c net: Use skb_checksum_start_offset() 2010-12-16 14:43:14 -08:00
smsc95xx.h
usbnet.c USB Network driver infrastructure: Fix leak when usb_autopm_get_interface() returns less than zero in kevent(). 2011-02-13 11:21:15 -08:00
zaurus.c