mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
perf bpf: Fix metadata leak in perf_env__add_bpf_info() on duplicate insert
When perf_env__insert_bpf_prog_info() returns false (duplicate
program), the error path frees info_linear and info_node but not
info_node->metadata. If bpf_metadata_create() had succeeded, the
metadata allocation is permanently leaked.
Fix by calling bpf_metadata_free() on info_node->metadata before
freeing info_node. bpf_metadata_free() handles NULL, so this is
safe even when bpf_metadata_create() returned NULL.
Reported-by: sashiko-bot <sashiko-bot@kernel.org>
Fixes: fdc3441f2d ("perf record: collect BPF metadata from new programs")
Cc: Blake Jones <blakejones@google.com>
Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
aece2b8966
commit
a0e4362a3e
|
|
@ -873,6 +873,7 @@ static int perf_env__add_bpf_info(struct perf_env *env, u32 id)
|
|||
if (!perf_env__insert_bpf_prog_info(env, info_node)) {
|
||||
pr_debug("%s: duplicate add bpf info request for id %u\n",
|
||||
__func__, btf_id);
|
||||
bpf_metadata_free(info_node->metadata);
|
||||
free(info_linear);
|
||||
free(info_node);
|
||||
goto out;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user