lkml.org 
[lkml]   [2010]   [Aug]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/4] perf probe: Fix memory leaks in add_perf_probe_events
    Date
    From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>

    Fix several memory leaks of pkgs and tevs in add_perf_probe_events().

    Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: linux-kernel@vger.kernel.org
    LKML-Reference: <4C577ADC.1000309@hitachi.com>

    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/util/probe-event.c | 11 ++++++++---
    1 files changed, 8 insertions(+), 3 deletions(-)

    diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
    index 2e665cb..e72f05c 100644
    --- a/tools/perf/util/probe-event.c
    +++ b/tools/perf/util/probe-event.c
    @@ -1606,8 +1606,10 @@ int add_perf_probe_events(struct perf_probe_event *pevs, int npevs,

    /* Init vmlinux path */
    ret = init_vmlinux();
    - if (ret < 0)
    + if (ret < 0) {
    + free(pkgs);
    return ret;
    + }

    /* Loop 1: convert all events */
    for (i = 0; i < npevs; i++) {
    @@ -1625,10 +1627,13 @@ int add_perf_probe_events(struct perf_probe_event *pevs, int npevs,
    ret = __add_probe_trace_events(pkgs[i].pev, pkgs[i].tevs,
    pkgs[i].ntevs, force_add);
    end:
    - /* Loop 3: cleanup trace events */
    - for (i = 0; i < npevs; i++)
    + /* Loop 3: cleanup and free trace events */
    + for (i = 0; i < npevs; i++) {
    for (j = 0; j < pkgs[i].ntevs; j++)
    clear_probe_trace_event(&pkgs[i].tevs[j]);
    + free(pkgs[i].tevs);
    + }
    + free(pkgs);

    return ret;
    }
    --
    1.6.2.5


    \
     
     \ /
      Last update: 2010-08-07 03:37    [W:0.022 / U:0.060 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site