aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-inject.c
diff options
context:
space:
mode:
authorTaeung Song <[email protected]>2015-06-30 08:15:20 +0000
committerArnaldo Carvalho de Melo <[email protected]>2015-07-01 20:53:49 +0000
commit9fedfb0c5b05ae6c315de722a0548bb1f1328bf5 (patch)
treed16a47270fc4e904042c598ab1baa6c7fcdab456 /tools/perf/builtin-inject.c
parentperf tools: Add missing break for PERF_RECORD_ITRACE_START (diff)
downloadkernel-9fedfb0c5b05ae6c315de722a0548bb1f1328bf5.tar.gz
kernel-9fedfb0c5b05ae6c315de722a0548bb1f1328bf5.zip
perf inject: Fill in the missing session freeing after an error occurs
When an error occur an error value is just returned without freeing the session. So allocating and freeing session have to be matched as a pair even if an error occurs. Signed-off-by: Taeung Song <[email protected]> Acked-by: Jiri Olsa <[email protected]> Cc: Namhyung Kim <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
Diffstat (limited to 'tools/perf/builtin-inject.c')
-rw-r--r--tools/perf/builtin-inject.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c
index 52ec66b23607..01b06492bd6a 100644
--- a/tools/perf/builtin-inject.c
+++ b/tools/perf/builtin-inject.c
@@ -630,12 +630,13 @@ int cmd_inject(int argc, const char **argv, const char *prefix __maybe_unused)
if (inject.session == NULL)
return -1;
- if (symbol__init(&inject.session->header.env) < 0)
- return -1;
+ ret = symbol__init(&inject.session->header.env);
+ if (ret < 0)
+ goto out_delete;
ret = __cmd_inject(&inject);
+out_delete:
perf_session__delete(inject.session);
-
return ret;
}