public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 2/4] arch/x86/kernel/kdebugfs.c: introduce missing kfree
@ 2008-09-10 11:57 Julia Lawall
  2008-09-10 12:04 ` Ingo Molnar
  0 siblings, 1 reply; 2+ messages in thread
From: Julia Lawall @ 2008-09-10 11:57 UTC (permalink / raw)
  To: tglx, mingo, hpa, linux-kernel, linux-kernel, kernel-janitors

From: Julia Lawall <julia@diku.dk>

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>
---
 arch/x86/kernel/kdebugfs.c    |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/kdebugfs.c b/arch/x86/kernel/kdebugfs.c
index f2d43bc..ff7d3b0 100644
--- a/arch/x86/kernel/kdebugfs.c
+++ b/arch/x86/kernel/kdebugfs.c
@@ -139,6 +139,7 @@ static int __init create_setup_data_nodes(struct dentry *parent)
 		if (PageHighMem(pg)) {
 			data = ioremap_cache(pa_data, sizeof(*data));
 			if (!data) {
+				kfree(node);
 				error = -ENXIO;
 				goto err_dir;
 			}

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 2/4] arch/x86/kernel/kdebugfs.c: introduce missing kfree
  2008-09-10 11:57 [PATCH 2/4] arch/x86/kernel/kdebugfs.c: introduce missing kfree Julia Lawall
@ 2008-09-10 12:04 ` Ingo Molnar
  0 siblings, 0 replies; 2+ messages in thread
From: Ingo Molnar @ 2008-09-10 12:04 UTC (permalink / raw)
  To: Julia Lawall; +Cc: tglx, mingo, hpa, linux-kernel, kernel-janitors


* Julia Lawall <julia@diku.dk> wrote:

> From: Julia Lawall <julia@diku.dk>
> 
> 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.

applied to tip/x86/urgent, thanks Julia.

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

cool stuff!

	Ingo

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-09-10 12:04 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-10 11:57 [PATCH 2/4] arch/x86/kernel/kdebugfs.c: introduce missing kfree Julia Lawall
2008-09-10 12:04 ` Ingo Molnar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox