linux-hardened/drivers
Julia Lawall 2bb6a12a88 Staging: dream: introduce missing kfree
Error handling code following a kmalloc or kzalloc should free the
allocated data.

The semantic match that finds the problem is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r exists@
local idexpression x;
statement S;
expression E;
identifier f,f1,l;
position p1,p2;
expression *ptr != NULL;
@@

x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...);
...
if (x == NULL) S
<... when != x
     when != if (...) { <+...x...+> }
(
x->f1 = E
|
 (x->f1 == NULL || ...)
|
 f(...,x->f1,...)
)
...>
(
 return \(0\|<+...x...+>\|ptr\);
|
 return@p2 ...;
)

@script:python@
p1 << r.p1;
p2 << r.p2;
@@

print "* file: %s kmalloc %s return %s" % (p1[0].file,p1[0].line,p2[0].line)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
2009-09-15 12:02:34 -07:00
..
accessibility
acpi Merge branch 'x86-txt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-15 09:19:20 -07:00
amba Merge branches 'arm', 'at91', 'bcmring', 'ep93xx', 'mach-types', 'misc' and 'w90x900' into devel 2009-09-12 12:01:34 +01:00
ata pata_rz1000: use printk_once 2009-09-11 02:33:59 -04:00
atm
auxdisplay
base PM: Reset transition_started at dpm_resume_noirq 2009-09-14 20:27:00 +02:00
block Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2009-09-15 09:51:09 -07:00
bluetooth
cdrom
char Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2009-09-15 09:51:09 -07:00
clocksource
connector
cpufreq Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2009-09-15 09:39:44 -07:00
cpuidle
crypto
dca
dio
dma at_hdmac: Rework suspend_late()/resume_early() 2009-09-14 20:27:00 +02:00
edac EDAC, AMD: decode FR MCEs 2009-09-14 19:01:37 +02:00
eisa
firewire Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2009-09-14 10:37:28 -07:00
firmware dmi: extend dmi_get_year() to dmi_get_date() 2009-09-08 21:17:48 -04:00
gpio
gpu i915: disable interrupts before tearing down GEM state 2009-09-08 17:09:24 -07:00
hid Merge branches 'upstream', 'upstream-fixes' and 'debugfs' into for-linus 2009-09-13 20:09:41 +02:00
hwmon
i2c
ide Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-next-2.6 2009-09-15 10:01:16 -07:00
idle
ieee1394
ieee802154
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2009-09-14 10:37:28 -07:00
input Nicolas Pitre has a new email address 2009-09-15 09:37:12 -07:00
isdn
leds
lguest
macintosh Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2009-09-15 09:51:09 -07:00
mca
md Merge branch 'for-2.6.32' of git://git.kernel.dk/linux-2.6-block 2009-09-14 17:55:15 -07:00
media Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2009-09-15 09:22:18 -07:00
memstick
message Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2009-09-14 17:53:36 -07:00
mfd
misc Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2009-09-14 17:53:36 -07:00
mmc Merge branch 'master' into devel 2009-09-12 12:04:37 +01:00
mtd Nicolas Pitre has a new email address 2009-09-15 09:37:12 -07:00
net Nicolas Pitre has a new email address 2009-09-15 09:37:12 -07:00
nubus
of
oprofile
parisc
parport
pci Merge branch 'x86-txt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-15 09:19:20 -07:00
pcmcia
platform hp-wmi: Switch driver to dev_pm_ops 2009-09-14 20:26:59 +02:00
pnp
power
pps
ps3 powerpc/ps3: Workaround for flash memory I/O error 2009-09-11 11:28:00 +10:00
rapidio
regulator
rtc Nicolas Pitre has a new email address 2009-09-15 09:37:12 -07:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2009-09-14 17:53:36 -07:00
sbus
scsi Merge branch 'for-2.6.32' of git://git.kernel.dk/linux-2.6-block 2009-09-14 17:55:15 -07:00
serial Merge branch 'master' into devel 2009-09-12 12:04:37 +01:00
sh
sn
spi Merge branch 'master' into devel 2009-09-12 12:04:37 +01:00
ssb ssb: Implement SDIO host bus support 2009-09-09 11:19:00 -04:00
staging Staging: dream: introduce missing kfree 2009-09-15 12:02:34 -07:00
tc
telephony
thermal
uio
usb Merge branch 'master' into for-linus 2009-09-14 20:26:05 +02:00
uwb
video Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2009-09-15 09:51:09 -07:00
virtio
vlynq
w1
watchdog
xen Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2009-09-15 09:39:44 -07:00
zorro
Kconfig
Makefile