kernel_optimize_test/drivers
Jesper Juhl 07fb75a506 [SCSI] fix (unlikely) memory leak in DAC960 driver
The Coverity checker found a memory leak (bug nr. 1245) in
 drivers/block/DAC960.c::DAC960_V2_ProcessCompletedCommand()

The leak is pretty unlikely since it requires that the first of two
successive kmalloc() calls fail while the second one succeeds. But it can
still happen even if it's unlikely.

If the first call that allocates 'PhysicalDeviceInfo' fails but the one
that allocates 'InquiryUnitSerialNumber' succeeds, then we will leak the
memory allocated to 'InquiryUnitSerialNumber' when the variable goes out
of scope.

A simple fix for this is to change the existing code that frees
'PhysicalDeviceInfo' if that one was allocated but
'InquiryUnitSerialNumber' was not, into a check for either pointer
being NULL and if so just free both. This is safe since kfree() can
deal with being passed a NULL pointer and it avoids the leak.

While I was there I also removed the casts of the kmalloc() return
value since it's pointless.
I also updated the driver version since this patch changes the workings of
the code (however slightly).

This issue could probably be fixed a lot more elegantly, but the code
is a big mess IMHO and I just took the least intrusive route to a fix
that I could find instead of starting on a cleanup as well (that can
come later).

Please consider for inclusion.

Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2006-05-20 09:23:23 -05:00
..
acorn
acpi [PATCH] x86_64: Support memory hotadd without sparsemem 2006-04-09 11:53:16 -07:00
amba
atm [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
base [PATCH] Fix NULL pointer dereference in node_read_numastat() 2006-04-11 06:18:30 -07:00
block [SCSI] fix (unlikely) memory leak in DAC960 driver 2006-05-20 09:23:23 -05:00
bluetooth [PATCH] pcmcia: use bitfield instead of p_state and state 2006-03-31 17:26:33 +02:00
cdrom [PATCH] Overrun in cdrom/aztcd.c 2006-04-11 06:18:46 -07:00
char [PATCH] RTC subsystem: VR41XX driver 2006-04-11 06:18:47 -07:00
connector
cpufreq [CPUFREQ] cpufreq_conservative: keep ignore_nice_load and freq_step values when reselected 2006-03-28 12:20:18 -05:00
crypto
dio [PATCH] hp300: fix driver_register() return handling, remove dio_module_init() 2006-03-25 08:22:53 -08:00
edac [PATCH] edac_752x needs CONFIG_HOTPLUG 2006-03-31 12:18:54 -08:00
eisa [PATCH] EISA: Ignore generated file drivers/eisa/devlist.h 2006-03-25 08:23:01 -08:00
fc4
firmware [PATCH] Notifier chain update: API changes 2006-03-27 08:44:50 -08:00
hwmon [PATCH] hdaps: use ENODEV 2006-04-11 06:18:45 -07:00
i2c [PATCH] RTC subsystem: I2C cleanup 2006-03-27 08:44:51 -08:00
ide Merge master.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 2006-04-02 12:49:59 -07:00
ieee1394 [PATCH] sbp2: fix spinlock recursion 2006-04-02 12:58:09 -07:00
infiniband IB/mthca: Fix max_srq_sge returned by ib_query_device for Tavor devices 2006-04-12 11:42:30 -07:00
input Input: synaptics - limit rate to 40pps on Toshiba Protege M300 2006-04-02 00:10:18 -05:00
isdn [ISDN]: Static overruns in drivers/isdn/i4l/isdn_ppp.c 2006-04-11 17:29:17 -07:00
leds [PATCH] leds: reorganise Kconfig 2006-04-11 06:18:40 -07:00
macintosh Merge ../linux-2.6 2006-03-29 13:24:50 +11:00
mca
md [PATCH] md: make sure 64bit fields in version-1 metadata are 64-bit aligned 2006-04-11 06:18:30 -07:00
media Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild 2006-04-11 06:41:02 -07:00
message [SCSI] mptfusion - fix panic in mptsas_slave_configure 2006-04-14 09:35:12 -05:00
mfd [PATCH] show MCP menu only on ARCH_SA1100 2006-03-24 07:33:28 -08:00
misc [PATCH] Make most file operations structs in fs/ const 2006-03-28 09:16:06 -08:00
mmc [ARM] 3457/1: i.MX: SD/MMC support for i.MX/MX1 2006-04-02 19:27:07 +01:00
mtd [PATCH] Remove blkmtd 2006-04-11 06:18:43 -07:00
net Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2006-04-12 15:24:06 -07:00
nubus
oprofile [PATCH] mark f_ops const in the inode 2006-03-28 09:16:05 -08:00
parisc [PARISC] I/O-Space must be ioremap_nocache()'d 2006-03-30 17:48:42 +00:00
parport [PATCH] parport: remove duplicate entry for NETMOS_9835 2006-04-11 06:18:45 -07:00
pci [PATCH] sem2mutex: misc static one-file mutexes 2006-03-26 08:56:55 -08:00
pcmcia Merge master.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 2006-04-02 12:49:59 -07:00
pnp [PATCH] pnp: PNP: adjust pnp_register_driver signature 2006-03-27 08:44:53 -08:00
rapidio
rtc [PATCH] RTC subsystem: VR41XX cleanup 2006-04-11 06:18:47 -07:00
s390 [PATCH] s390: minor tape fixes 2006-04-11 06:18:38 -07:00
sbus
scsi [SCSI] aacraid: remove unneeded list 2006-05-20 09:23:02 -05:00
serial Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-04-02 12:58:45 -07:00
sh
sn [PATCH] Last DMA_xBIT_MASK cleanups 2006-04-11 06:18:44 -07:00
spi
tc
telephony [PATCH] pcmcia: use bitfield instead of p_state and state 2006-03-31 17:26:33 +02:00
usb [PATCH] Overrun in option-card USB driver 2006-04-11 06:24:15 -07:00
video [PATCH] fbdev: Use logo with depth of 4 or less for static pseudocolor 2006-04-11 06:18:54 -07:00
w1 fix typos "wich" -> "which" 2006-03-24 18:23:14 +01:00
zorro [PATCH] amiga: fix driver_register() return handling, remove zorro_module_init() 2006-03-25 08:22:53 -08:00
Kconfig [PATCH] LED: add LED class 2006-03-31 12:18:56 -08:00
Makefile Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband 2006-04-02 12:51:22 -07:00