Re: [PATCH] perf evsel: Fix 2 memory leaks

From: Arnaldo Carvalho de Melo
Date: Wed May 13 2020 - 09:36:34 EST


Em Tue, May 12, 2020 at 04:59:18PM -0700, Ian Rogers escreveu:
> If allocated, perf_pkg_mask and metric_events need freeing.

Applied, were those found with some tool? Or just by visual inspection?

Also I noticed that evsel->metric_events is correctly initialized to
NULL in evsel__init(), but evsel->per_pkg_mask isn't, and while
evsel__new() uses zalloc() it is possible, IIRC, for evsels associated
with hists to be part of a larger struct, so I think the safest way is
to initialize evsel->per_pkg_mask to NULL in evsel__init(), will do it
in a follow up patch.

- Arnaldo

> Reviewed-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
> Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
> ---
> tools/perf/util/evsel.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
> index a2397ca4d57a..654b79c1f4ac 100644
> --- a/tools/perf/util/evsel.c
> +++ b/tools/perf/util/evsel.c
> @@ -1266,6 +1266,8 @@ void evsel__exit(struct evsel *evsel)
> zfree(&evsel->group_name);
> zfree(&evsel->name);
> zfree(&evsel->pmu_name);
> + zfree(&evsel->per_pkg_mask);
> + zfree(&evsel->metric_events);
> perf_evsel__object.fini(evsel);
> }
>
> --
> 2.26.2.645.ge9eca65c58-goog
>

--

- Arnaldo