mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-19 17:11:03 +00:00
7a626b66bb
Error handling code following a 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> Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> |
||
---|---|---|
.. | ||
bestcomm | ||
qe_lib | ||
6xx-suspend.S | ||
axonram.c | ||
cpm1.c | ||
cpm2.c | ||
cpm2_pic.c | ||
cpm2_pic.h | ||
cpm_common.c | ||
dart.h | ||
dart_iommu.c | ||
dcr-low.S | ||
dcr.c | ||
fsl_gtm.c | ||
fsl_lbc.c | ||
fsl_msi.c | ||
fsl_msi.h | ||
fsl_pci.c | ||
fsl_pci.h | ||
fsl_rio.c | ||
fsl_soc.c | ||
fsl_soc.h | ||
grackle.c | ||
i8259.c | ||
indirect_pci.c | ||
ipic.c | ||
ipic.h | ||
Kconfig | ||
Makefile | ||
micropatch.c | ||
mmio_nvram.c | ||
mpc5xxx_clocks.c | ||
mpc8xx_pic.c | ||
mpc8xx_pic.h | ||
mpc8xxx_gpio.c | ||
mpic.c | ||
mpic.h | ||
mpic_msi.c | ||
mpic_pasemi_msi.c | ||
mpic_u3msi.c | ||
msi_bitmap.c | ||
mv64x60.h | ||
mv64x60_dev.c | ||
mv64x60_pci.c | ||
mv64x60_pic.c | ||
mv64x60_udbg.c | ||
of_rtc.c | ||
pmi.c | ||
ppc4xx_gpio.c | ||
ppc4xx_pci.c | ||
ppc4xx_pci.h | ||
ppc4xx_soc.c | ||
rtc_cmos_setup.c | ||
simple_gpio.c | ||
simple_gpio.h | ||
tsi108_dev.c | ||
tsi108_pci.c | ||
uic.c | ||
xilinx_intc.c | ||
xilinx_pci.c |