mirror of
https://github.com/torvalds/linux.git
synced 2026-07-09 23:01:40 +02:00
Data is only used to temporarily hold information to be copied to the user level, so it should be freed before leaving the function. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @exists@ local idexpression x; statement S,S1; expression E; identifier fl; expression *ptr != NULL; @@ x = \(kmalloc\|kzalloc\|kcalloc\)(...); ... if (x == NULL) S <... when != x when != if (...) { <+...kfree(x)...+> } when any when != true x == NULL x->fl ...> ( if (x == NULL) S1 | if (...) { ... when != x when forall ( return \(0\|<+...x...+>\|ptr\); | * return ...; ) } ) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> |
||
|---|---|---|
| .. | ||
| dasd_3990_erp.c | ||
| dasd_alias.c | ||
| dasd_devmap.c | ||
| dasd_diag.c | ||
| dasd_diag.h | ||
| dasd_eckd.c | ||
| dasd_eckd.h | ||
| dasd_eer.c | ||
| dasd_erp.c | ||
| dasd_fba.c | ||
| dasd_fba.h | ||
| dasd_genhd.c | ||
| dasd_int.h | ||
| dasd_ioctl.c | ||
| dasd_proc.c | ||
| dasd.c | ||
| dcssblk.c | ||
| Kconfig | ||
| Makefile | ||
| xpram.c | ||