]> git.baikalelectronics.ru Git - kernel.git/commit
arch/x86/kernel/kdebugfs.c: introduce missing kfree
authorJulia Lawall <julia@diku.dk>
Wed, 10 Sep 2008 11:57:43 +0000 (13:57 +0200)
committerIngo Molnar <mingo@elte.hu>
Wed, 10 Sep 2008 12:03:49 +0000 (14:03 +0200)
commit13b80aa22b751df8a7c21dfc8be30c18d99bb08e
tree049854c288effeb876c67e6b9cc7d3caaad6bc11
parent7910785febbbac1b9c4437aae80ce41e28822ff2
arch/x86/kernel/kdebugfs.c: introduce missing kfree

Error handling code following a kmalloc should free the allocated data.
Note that at the point of the change, node has not yet been stored in d, so
it is not affected by the existing cleanup code.

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,l;
position p1,p2;
expression *ptr != NULL;
@@

(
if ((x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...)) == NULL) S
|
x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...);
...
if (x == NULL) S
)
<... when != x
     when != if (...) { <+...x...+> }
x->f = E
...>
(
 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: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/kdebugfs.c