Re: [PATCH] hw breakpoint: Fix possible memory leak

Peter Zijlstra
2012-02-27T11:05:08Z

On Mon, 2012-02-27 at 11:44 +0100, Ingo Molnar wrote:
> I edited that code earlier today - is the form below OK, or can
> you see a simpler method? It's not yet pushed out so can still
> edit it.

I think something like the below should do, but then I didn't really
think much about it, my thoughts went like:

... *shees* that's ugly
... that error path already does a loop
... what the problem is!? -- reread changelog
... err_cpu == cpu is placed wrong!

So I replied and marked read.. waiting to either hear if there's a good
reason to do ugly or find a new (tested) patch in my inbox.. :-)

---
kernel/events/hw_breakpoint.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c
index b0309f7..3330022 100644
--- a/kernel/events/hw_breakpoint.c
+++ b/kernel/events/hw_breakpoint.c
@@ -658,10 +658,10 @@ int __init init_hw_breakpoint(void)

err_alloc:
for_each_possible_cpu(err_cpu) {
- if (err_cpu == cpu)
- break;
for (i = 0; i < TYPE_MAX; i++)
kfree(per_cpu(nr_task_bp_pinned[i], cpu));
+ if (err_cpu == cpu)
+ break;
}

return -ENOMEM;