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
..
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
asix.c asix: add USB ID for Logitec LAN-GTJ U2A 2010-12-17 11:50:20 -08:00
catc.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-04-11 14:53:53 -07:00
cdc-phonet.c usbnet: remove direct access to urb->status 2010-07-05 18:50:55 -07:00
cdc_eem.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
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 usbnet cdc_subset: fix issues talking to PXA gadgets 2009-06-20 01:21:53 -07:00
cx82310_eth.c cx82310_eth: allow empty URBs 2010-09-13 20:02:53 -07:00
dm9601.c drivers/net/usb: Use kmemdup 2010-05-17 17:44:48 -07:00
gl620a.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
hso.c Net, USB, Option, hso: Do not dereference NULL pointer 2011-02-13 16:55:45 -08:00
int51x1.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ipheth.c drivers/net/usb: Update WARN uses 2010-11-09 09:22:31 -08:00
kaweth.c USB NET KL5KUSB101: Fix mem leak in error path of kaweth_download_firmware() 2011-01-24 23:20:24 -08:00
mcs7830.c USB: mcs7830: return negative if auto negotiate fails 2010-12-23 10:21:12 -08:00
net1080.c drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
pegasus.c drivers/net/usb: Remove unnecessary casts of netdev_priv 2010-11-17 10:36:52 -08:00
pegasus.h usb: pegasus: fixed coding style issues 2010-06-30 10:26:16 -07:00
plusb.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
rndis_host.c net: Revert "rndis_host: Poll status channel before control channel" 2010-07-02 21:47:54 -07:00
rtl8150.c net: use netdev_mc_count and netdev_mc_empty when appropriate 2010-02-12 11:38:58 -08:00
sierra_net.c drivers/net: don't use flush_scheduled_work() 2010-12-12 16:45:14 +01:00
smsc75xx.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-04-11 14:53:53 -07:00
smsc75xx.h smsc75xx: SMSC LAN75xx USB gigabit ethernet adapter driver 2010-03-16 14:15:42 -07:00
smsc95xx.c net: Use skb_checksum_start_offset() 2010-12-16 14:43:14 -08:00
smsc95xx.h smsc95xx: configure LED outputs 2009-05-01 15:27:02 -07:00
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 drivers/net: Move && and || to end of previous line 2009-12-03 13:18:01 -08:00