]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
perf c2c: Free format list entries when c2c_hists__init() fails
authorArnaldo Carvalho de Melo <acme@redhat.com>
Sat, 13 Jun 2026 18:13:54 +0000 (15:13 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 17 Jun 2026 12:21:03 +0000 (09:21 -0300)
When c2c_hists__init() fails partway through hpp_list__parse(),
dynamically allocated format structures that were already added to
hists->list are leaked because he__get_c2c_hists() frees the hists
container without first unregistering the format entries.

Call perf_hpp__reset_output_field() before freeing the hists container
on the error path, matching what c2c_he_free() already does on the
normal destruction path.

Fixes: 17a7c5946d79a12c ("perf c2c report: Decode c2c_stats for hist entries")
Reported-by: sashiko-bot <sashiko-bot@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-c2c.c

index 07c7e8fb315e6cf31b935c299ec1452d658d43dc..eabb922ef295ef86dde1904d9f04813ac32e807b 100644 (file)
@@ -226,6 +226,7 @@ he__get_c2c_hists(struct hist_entry *he,
 
        ret = c2c_hists__init(hists, sort, nr_header_lines, env);
        if (ret) {
+               perf_hpp__reset_output_field(&hists->list);
                c2c_he->hists = NULL;
                free(hists);
                return NULL;