perf probe: Fix to free temporal Dwarf_Frame correctly
authorMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Wed, 25 Nov 2015 10:34:32 +0000 (19:34 +0900)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 25 Nov 2015 19:36:35 +0000 (16:36 -0300)
commit4d3b16269059eee12dc572848191c8e4e7bd24b3
tree9eca24ef311d1ba2d8cc4167f281879f02dbe50f
parent32abc2ede536aae52978d6c0a8944eb1df14f460
perf probe: Fix to free temporal Dwarf_Frame correctly

The commit 05c8d802fa52 ("perf probe: Fix to free temporal Dwarf_Frame")
tried to fix the memory leak of Dwarf_Frame, but it released the frame
at wrong point. Since the dwarf_frame_cfa(frame, &pf->fb_ops, &nops) can
return an address inside the frame data structure to pf->fb_ops, we can
not release the frame before using pf->fb_ops.

This reverts the commit and releases the frame afterwards (right before
returning from call_probe_finder) correctly.

Reported-and-Tested-by: Arnaldo Carvalho de Melo <acme@kernel.org>
Reported-by: Michael Petlan <mpetlan@redhat.com>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Wang Nan <wangnan0@huawei.com>
Fixes: 05c8d802fa52 ("perf probe: Fix to free temporal Dwarf_Frame")
LPU-Reference: 20151125103432.1473.31009.stgit@localhost.localdomain
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/probe-finder.c