[S390] tape_3590.c: introduce missing kfree
authorJulia Lawall <julia@diku.dk>
Tue, 10 Jun 2008 08:03:25 +0000 (10:03 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 10 Jun 2008 08:03:28 +0000 (10:03 +0200)
commit1783e60ff207805a3e75cf522b17ec9bb1604a62
tree8245a54df59222e7e8ecd132c13f6c133284adfb
parentb57838ea3f860c97e4726ab93abdf83a3d079a66
[S390] tape_3590.c: introduce missing kfree

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

@r exists@
expression E,E1;
statement S;
position p1,p2,p3;
@@

E =@p1 \(kmalloc\|kcalloc\|kzalloc\)(...)
... when != E = E1
if (E == NULL || ...) S
... when != E = E1
if@p2 (...) {
 ... when != kfree(E)
 }
... when != E = E1
kfree@p3(E);

@forall@
position r.p2;
expression r.E;
int E1 != 0;
@@

* if@p2 (...) {
 ... when != kfree(E)
     when strict
return E1; }

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/char/tape_3590.c