bpf: fix bpf_prog_get_info_by_fd to return 0 func_lens for unpriv
Subsystems (4)
Daniel Borkmann
maintainerPATCH 1/1 bpf: fix bpf_prog_get_info_by_fd to return 0 func_lens for unpriv
While dbecd7388476 ("bpf: get kernel symbol addresses via syscall") zeroed info.nr_jited_ksyms in bpf_prog_get_info_by_fd() for queries from unprivileged users, commit 815581c11cc2 ("bpf: get JITed image lengths of functions via syscall") forgot about doing so and therefore returns the #elems of the user set up buffer which is incorrect. It also needs to indicate a info.nr_jited_func_lens of zero.
--- kernel/bpf/syscall.c | 1 + 1 file changed, 1 insertion(+)
kernel/bpf/syscall.c +1 -0
@@ -2078,6 +2078,7 @@ static int bpf_prog_get_info_by_fd(struct bpf_prog *prog, info.jited_prog_len =0 ; info.xlated_prog_len =0 ; info.nr_jited_ksyms =0 ; + info.nr_jited_func_lens =0 ; goto done; }
Signature · 1 line
2.9.5
Quoted 20 lines · Daniel Borkmann
While
dbecd7388476("bpf: get kernel symbol addresses via syscall") zeroed info.nr_jited_ksyms inbpf_prog_get_info_by_fd()for queries from unprivileged users, commit815581c11cc2("bpf: get JITed image lengths of functions via syscall") forgot about doing so and therefore returns the #elems of the user set up buffer which is incorrect. It also needs to indicate a info.nr_jited_func_lens of zero.Fixes 815581c11cc2 ("bpf: get JITed image lengths of functions via syscall")Signed-off-by Daniel Borkmann <[email protected]>Cc Sandipan Das <[email protected]>Cc Song Liu <[email protected]>--- kernel/bpf/syscall.c | 1 + 1 file changed, 1 insertion(+)kernel/bpf/syscall.c +0
-0
kernel/bpf/syscall.c static int bpf_prog_get_info_by_fd(struct bpf_prog *prog, · line 2084
Quoted 7 lines
kernel/bpf/syscall.c +1
-0@@ -2078,6 +2078,7 @@ static int bpf_prog_get_info_by_fd(struct bpf_prog *prog, info.jited_prog_len =0 ; info.xlated_prog_len =0 ; info.nr_jited_ksyms =0 ; + info.nr_jited_func_lens =0 ; goto done; }
Looks good. Thanks for fixing this.
- Sandipan
Alexei Starovoitov
AppliedQuoted 11 lines · Daniel Borkmann
While
dbecd7388476("bpf: get kernel symbol addresses via syscall") zeroed info.nr_jited_ksyms inbpf_prog_get_info_by_fd()for queries from unprivileged users, commit815581c11cc2("bpf: get JITed image lengths of functions via syscall") forgot about doing so and therefore returns the #elems of the user set up buffer which is incorrect. It also needs to indicate a info.nr_jited_func_lens of zero.Fixes 815581c11cc2 ("bpf: get JITed image lengths of functions via syscall")Signed-off-by Daniel Borkmann <[email protected]>Cc Sandipan Das <[email protected]>Cc Song Liu <[email protected]>
Applied, Thanks