mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-05 16:37:50 +00:00
bpf: Gate dynptr API behind CAP_BPF
commit8addbfc7b3
upstream. This has been enabled for unprivileged programs for only one kernel release, hence the expected annoyances due to this move are low. Users using ringbuf can stick to non-dynptr APIs. The actual use cases dynptr is meant to serve may not make sense in unprivileged BPF programs. Hence, gate these helpers behind CAP_BPF and limit use to privileged BPF programs. Fixes:263ae152e9
("bpf: Add bpf_dynptr_from_mem for local dynptrs") Fixes:bc34dee65a
("bpf: Dynptr support for ring buffers") Fixes:13bbbfbea7
("bpf: Add bpf_dynptr_read and bpf_dynptr_write") Fixes:34d4ef5775
("bpf: Add dynptr data slices") Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com> Link: https://lore.kernel.org/r/20220921143550.30247-1-memxor@gmail.com Acked-by: Andrii Nakryiko <andrii@kernel.org> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
64517c21fd
commit
50fe01fa76
1 changed files with 14 additions and 14 deletions
|
@ -1627,26 +1627,12 @@ bpf_base_func_proto(enum bpf_func_id func_id)
|
|||
return &bpf_ringbuf_discard_proto;
|
||||
case BPF_FUNC_ringbuf_query:
|
||||
return &bpf_ringbuf_query_proto;
|
||||
case BPF_FUNC_ringbuf_reserve_dynptr:
|
||||
return &bpf_ringbuf_reserve_dynptr_proto;
|
||||
case BPF_FUNC_ringbuf_submit_dynptr:
|
||||
return &bpf_ringbuf_submit_dynptr_proto;
|
||||
case BPF_FUNC_ringbuf_discard_dynptr:
|
||||
return &bpf_ringbuf_discard_dynptr_proto;
|
||||
case BPF_FUNC_for_each_map_elem:
|
||||
return &bpf_for_each_map_elem_proto;
|
||||
case BPF_FUNC_loop:
|
||||
return &bpf_loop_proto;
|
||||
case BPF_FUNC_strncmp:
|
||||
return &bpf_strncmp_proto;
|
||||
case BPF_FUNC_dynptr_from_mem:
|
||||
return &bpf_dynptr_from_mem_proto;
|
||||
case BPF_FUNC_dynptr_read:
|
||||
return &bpf_dynptr_read_proto;
|
||||
case BPF_FUNC_dynptr_write:
|
||||
return &bpf_dynptr_write_proto;
|
||||
case BPF_FUNC_dynptr_data:
|
||||
return &bpf_dynptr_data_proto;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -1675,6 +1661,20 @@ bpf_base_func_proto(enum bpf_func_id func_id)
|
|||
return &bpf_timer_cancel_proto;
|
||||
case BPF_FUNC_kptr_xchg:
|
||||
return &bpf_kptr_xchg_proto;
|
||||
case BPF_FUNC_ringbuf_reserve_dynptr:
|
||||
return &bpf_ringbuf_reserve_dynptr_proto;
|
||||
case BPF_FUNC_ringbuf_submit_dynptr:
|
||||
return &bpf_ringbuf_submit_dynptr_proto;
|
||||
case BPF_FUNC_ringbuf_discard_dynptr:
|
||||
return &bpf_ringbuf_discard_dynptr_proto;
|
||||
case BPF_FUNC_dynptr_from_mem:
|
||||
return &bpf_dynptr_from_mem_proto;
|
||||
case BPF_FUNC_dynptr_read:
|
||||
return &bpf_dynptr_read_proto;
|
||||
case BPF_FUNC_dynptr_write:
|
||||
return &bpf_dynptr_write_proto;
|
||||
case BPF_FUNC_dynptr_data:
|
||||
return &bpf_dynptr_data_proto;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue