]> git.ipfire.org Git - thirdparty/linux.git/commit
perf bpf: Fix map data leak in bpf_metadata_create() on alloc failure
authorArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 8 Jun 2026 11:11:28 +0000 (08:11 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 10 Jun 2026 21:56:02 +0000 (18:56 -0300)
commitaece2b8966fc8de5be46ee9287d0f60d6690c300
tree6be3caf695c98ba2d663c01eb1c736c01010700f
parent903b0526dcf86d030c5970b4b0a67f9c227368e2
perf bpf: Fix map data leak in bpf_metadata_create() on alloc failure

bpf_metadata_create() calls bpf_metadata_read_map_data() which
allocates map.btf and map.rodata.  If the subsequent
bpf_metadata_alloc() fails, the code does 'continue' which skips
bpf_metadata_free_map_data(), permanently leaking both allocations.

Fix by calling bpf_metadata_free_map_data() before continue.

Reported-by: sashiko-bot <sashiko-bot@kernel.org>
Fixes: ab38e84ba9a80581 ("perf record: collect BPF metadata from existing BPF programs")
Cc: Blake Jones <blakejones@google.com>
Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/bpf-event.c