Messages in this thread | | | Subject | Re: [PATCH] hw breakpoint: Fix possible memory leak | From | Peter Zijlstra <> | Date | Mon, 27 Feb 2012 11:33:05 +0100 |
| |
On Mon, 2012-02-27 at 12:02 +0900, Namhyung Kim wrote: > If kzalloc() for TYPE_DATA failed on a given cpu, previous chunk > will be leaked. Fix it.
so why not fix the error loop? wouldn't putting that err_cpu == cpu break after the kfree sort it?
> Signed-off-by: Namhyung Kim <namhyung.kim@lge.com> > --- > kernel/events/hw_breakpoint.c | 6 +++++- > 1 files changed, 5 insertions(+), 1 deletions(-) > > diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c > index b0309f76d777..58298b0d0e92 100644 > --- a/kernel/events/hw_breakpoint.c > +++ b/kernel/events/hw_breakpoint.c > @@ -645,8 +645,12 @@ int __init init_hw_breakpoint(void) > task_bp_pinned = &per_cpu(nr_task_bp_pinned[i], cpu); > *task_bp_pinned = kzalloc(sizeof(int) * nr_slots[i], > GFP_KERNEL); > - if (!*task_bp_pinned) > + if (!*task_bp_pinned) { > + while (--i >= 0) > + kfree(per_cpu(nr_task_bp_pinned[i], > + cpu)); > goto err_alloc; > + } > } > } >
| |