Re: [PATCH 12/13] perf c2c: Free format list entries when releasing c2c hist entries
From: Ian Rogers
Date: Mon Jun 15 2026 - 13:31:08 EST
On Fri, Jun 12, 2026 at 3:25 PM Arnaldo Carvalho de Melo
<acme@xxxxxxxxxx> wrote:
>
> From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
>
> c2c_hists__init() calls hpp_list__parse() which allocates and registers
> format entries on hists->list. When c2c_he_free() destroys a c2c hist
> entry, it deletes the histogram entries and frees the hists container but
> never unregisters the format list entries, leaking them.
>
> Call perf_hpp__reset_output_field() before freeing the hists to properly
> unregister and free all format entries.
>
> Fixes: f485e33c4543ac31 ("perf c2c report: Add cacheline hists processing")
> Reported-by: sashiko-bot <sashiko-bot@xxxxxxxxxx>
> Closes: https://sashiko.dev/finding/41
I don't think these are public "Closes:" links and should probably be stripped.
Thanks,
Ian
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Assisted-by: Claude Opus 4.6 <noreply@xxxxxxxxxxxxx>
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> ---
> tools/perf/builtin-c2c.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c
> index e205f58b2f3d3786..07c7e8fb315e6cf3 100644
> --- a/tools/perf/builtin-c2c.c
> +++ b/tools/perf/builtin-c2c.c
> @@ -185,6 +185,7 @@ static void c2c_he_free(void *he)
> c2c_he = container_of(he, struct c2c_hist_entry, he);
> if (c2c_he->hists) {
> hists__delete_entries(&c2c_he->hists->hists);
> + perf_hpp__reset_output_field(&c2c_he->hists->list);
> zfree(&c2c_he->hists);
> }
>
> --
> 2.54.0
>