perf kmem: Fill in the missing session freeing after an error occurs
authorTaeung Song <treeze.taeung@gmail.com>
Tue, 30 Jun 2015 08:15:21 +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 occurs 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-3-git-send-email-treeze.taeung@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-kmem.c

index 950f296dfcf7a402ebbad0df1edf16e4d62a52bd..23b1faaaa4cc5f83c263ffbc9a0f14733c0dcae2 100644 (file)
@@ -1916,7 +1916,7 @@ int cmd_kmem(int argc, const char **argv, const char *prefix __maybe_unused)
                if (!perf_evlist__find_tracepoint_by_name(session->evlist,
                                                          "kmem:kmalloc")) {
                        pr_err(errmsg, "slab", "slab");
-                       return -1;
+                       goto out_delete;
                }
        }
 
@@ -1927,7 +1927,7 @@ int cmd_kmem(int argc, const char **argv, const char *prefix __maybe_unused)
                                                             "kmem:mm_page_alloc");
                if (evsel == NULL) {
                        pr_err(errmsg, "page", "page");
-                       return -1;
+                       goto out_delete;
                }
 
                kmem_page_size = pevent_get_page_size(evsel->tp_format->pevent);