summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMasami Hiramatsu2010-04-02 18:50:59 +0200
committerIngo Molnar2010-04-02 19:35:44 +0200
commit75ec5a245c7763c397f31ec8964d0a46c54a7386 (patch)
tree8d2e89135b95b34ab00ad98185b73d49a6a0c266
parentperf probe: Correct error message for non-structure type (diff)
downloadkernel-qcow2-linux-75ec5a245c7763c397f31ec8964d0a46c54a7386.tar.gz
kernel-qcow2-linux-75ec5a245c7763c397f31ec8964d0a46c54a7386.tar.xz
kernel-qcow2-linux-75ec5a245c7763c397f31ec8964d0a46c54a7386.zip
perf probe: Fix to close dwarf when failing to analyze it
Fix to close libdw routine when failing to analyze it in find_perf_probe_point(). Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Mike Galbraith <efault@gmx.de> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: systemtap <systemtap@sources.redhat.com> Cc: DLE <dle-develop@lists.sourceforge.net> LKML-Reference: <20100402165059.23551.95587.stgit@localhost6.localdomain6> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--tools/perf/util/probe-finder.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
index 59b0115de30a..a8513772df08 100644
--- a/tools/perf/util/probe-finder.c
+++ b/tools/perf/util/probe-finder.c
@@ -818,8 +818,10 @@ int find_perf_probe_point(int fd, unsigned long addr,
return -ENOENT;
/* Find cu die */
- if (!dwarf_addrdie(dbg, (Dwarf_Addr)addr, &cudie))
- return -EINVAL;
+ if (!dwarf_addrdie(dbg, (Dwarf_Addr)addr, &cudie)) {
+ ret = -EINVAL;
+ goto end;
+ }
/* Find a corresponding line */
line = dwarf_getsrc_die(&cudie, (Dwarf_Addr)addr);