perf help: Ensure clean_cmds is called on all paths
authorIan Rogers <irogers@google.com>
Sun, 11 Jun 2023 23:36:07 +0000 (16:36 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 12 Jun 2023 21:18:14 +0000 (18:18 -0300)
Avoid potential memory leaks.

Committer notes:

This is right before calling exit(1), so just to clean up memory leak
checker detection.

Signed-off-by: Ian Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: André Almeida <andrealmeid@igalia.com>
Cc: Darren Hart <dvhart@infradead.org>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20230611233610.953456-2-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/help-unknown-cmd.c

index ab9e161..eab99ea 100644 (file)
@@ -92,6 +92,7 @@ const char *help_unknown_cmd(const char *cmd)
 
                main_cmds.names[0] = NULL;
                clean_cmdnames(&main_cmds);
+               clean_cmdnames(&other_cmds);
                fprintf(stderr, "WARNING: You called a perf program named '%s', "
                        "which does not exist.\n"
                        "Continuing under the assumption that you meant '%s'\n",
@@ -114,5 +115,7 @@ const char *help_unknown_cmd(const char *cmd)
                        fprintf(stderr, "\t%s\n", main_cmds.names[i]->name);
        }
 end:
+       clean_cmdnames(&main_cmds);
+       clean_cmdnames(&other_cmds);
        exit(1);
 }