mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02: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:
parent
fd1f70776a
commit
903b0526dc
|
|
@ -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])
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user