Messages in this thread Patch in this message | | | From | Chenggang Qin <> | Subject | [PATCH 3/3] perf core: Fix a memory leak bug because symbol__delete is ignored | Date | Fri, 11 Oct 2013 08:27:59 +0800 |
| |
From: Chenggang Qin <chenggang.qcg@taobao.com>
In function symbols__fixup_duplicate(), while the duplicated symbols are found, only the rb_node are deleted. The symbol structures themself are ignored. Then, these memory areas are lost. This patch fixed the bug. Thanks.
Cc: David Ahern <dsahern@gmail.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Cc: Arjan van de Ven <arjan@linux.intel.com> Cc: Namhyung Kim <namhyung@gmail.com> Cc: Yanmin Zhang <yanmin.zhang@intel.com> Cc: Wu Fengguang <fengguang.wu@intel.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Chenggang Qin <chenggang.qcg@taobao.com> Acked-by: Namhyung Kim <namhyung@kernel.org>
--- tools/perf/util/symbol.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 9675866..3c9aa6f 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c @@ -148,10 +148,12 @@ again: if (choose_best_symbol(curr, next) == SYMBOL_A) { rb_erase(&next->rb_node, symbols); + symbol__delete(next); goto again; } else { nd = rb_next(&curr->rb_node); rb_erase(&curr->rb_node, symbols); + symbol__delete(curr); } } } -- 1.7.8.rc2.5.g815b
| |