OSDN Git Service

perf inject: Fill in the missing session freeing after an error occurs
authorTaeung Song <treeze.taeung@gmail.com>
Tue, 30 Jun 2015 08:15:20 +0000 (17:15 +0900)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 1 Jul 2015 20:53:49 +0000 (17:53 -0300)
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 <treeze.taeung@gmail.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/1435652124-22414-2-git-send-email-treeze.taeung@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-inject.c

index 52ec66b..01b0649 100644 (file)
@@ -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;
 }