perf stat: Fix memory leak on error path
authorIan Rogers <irogers@google.com>
Sun, 7 Nov 2021 08:54:44 +0000 (01:54 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Sun, 7 Nov 2021 15:44:53 +0000 (12:44 -0300)
strdup() is used to deduplicate, ensure it isn't leaking an already
created string by freeing first.

Signed-off-by: Ian Rogers <irogers@google.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: John Garry <john.garry@huawei.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lore.kernel.org/lkml/20211107085444.3781604-1-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/stat-shadow.c

index 69f3cf3b4a44b2d191d621f1bb1cbe7ca7d619be..e4fb02b0513048a57b850dd6e9b2e3ba8a05b20b 100644 (file)
@@ -444,6 +444,7 @@ void perf_stat__collect_metric_expr(struct evlist *evsel_list)
                                                "Add %s event to groups to get metric expression for %s\n",
                                                metric_name,
                                                counter->name);
+                                       free(printed);
                                        printed = strdup(metric_name);
                                }
                                invalid = true;