mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 01:08:13 -04:00
perf bpf: Add NULL check for btf__type_by_id() in synthesize_bpf_prog_name()
synthesize_bpf_prog_name() calls btf__type_by_id() and immediately
dereferences the result via t->name_off without checking for NULL.
btf__type_by_id() returns NULL when the type_id is invalid or out
of range. When processing perf.data files, finfo->type_id comes from
untrusted input, so an invalid ID causes a NULL pointer dereference.
Fix by checking t for NULL before dereferencing.
Reported-by: sashiko-bot <sashiko-bot@kernel.org>
Fixes: fc462ac75b ("perf bpf: Extract logic to create program names from perf_event__synthesize_one_bpf_prog()")
Cc: Song Liu <songliubraving@fb.com>
Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
@@ -146,7 +146,8 @@ static int synthesize_bpf_prog_name(char *buf, int size,
|
||||
if (btf) {
|
||||
finfo = func_infos + sub_id * info->func_info_rec_size;
|
||||
t = btf__type_by_id(btf, finfo->type_id);
|
||||
short_name = btf__name_by_offset(btf, t->name_off);
|
||||
if (t)
|
||||
short_name = btf__name_by_offset(btf, t->name_off);
|
||||
} else if (sub_id == 0 && sub_prog_cnt == 1) {
|
||||
/* no subprog */
|
||||
if (info->name[0])
|
||||
|
||||
Reference in New Issue
Block a user