From ae2cb1ac60758e99cec15e9edd68e0d22bfd310e Mon Sep 17 00:00:00 2001 From: Masami Hiramatsu Date: Wed, 6 May 2015 21:46:40 +0900 Subject: perf probe: Fix to close probe_events file in error Fix perf-probe to close probe_events file if it failed to get existing probe's name. This also fix the return error code to -ENOMEM. Signed-off-by: Masami Hiramatsu Cc: Ananth N Mavinakayanahalli Cc: David Ahern Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: hemant@linux.vnet.ibm.com Link: http://lkml.kernel.org/r/20150506124640.4961.26062.stgit@localhost.localdomain Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/util/probe-event.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'tools/perf/util') diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index abf5845a2acc..230353f1bea2 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c @@ -2384,7 +2384,8 @@ static int __add_probe_trace_events(struct perf_probe_event *pev, namelist = get_probe_trace_event_names(fd, false); if (!namelist) { pr_debug("Failed to get current event list.\n"); - return -EIO; + ret = -ENOMEM; + goto close_out; } /* Get kprobe blacklist if exists */ if (!pev->uprobes) { @@ -2467,6 +2468,7 @@ static int __add_probe_trace_events(struct perf_probe_event *pev, kprobe_blacklist__delete(&blacklist); strlist__delete(namelist); +close_out: close(fd); return ret; } -- cgit v1.2.3-55-g7522