mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
bpf: Fix ksock build with BPF_LSM=y and SECURITY_NETWORK=n
bpf_ksock.c references bpf_lsm_socket_sendmsg() whenever CONFIG_BPF_LSM=y, but the socket LSM hooks, and with them the BPF LSM socket_sendmsg hook, only exist with CONFIG_SECURITY_NETWORK=y. Without it resolve_btfids warns: WARN: resolve_btfids: unresolved symbol bpf_lsm_socket_sendmsg and since commit201a454df9("resolve_btfids: Fix the --fatal_warnings exit status") that fails the build with CONFIG_WERROR=y. Only reference the hook with CONFIG_SECURITY_NETWORK=y, and use BTF_ID_UNUSED otherwise. The ID stays zero, as it was when unresolved, so bpf_ksock_kfunc_filter() keeps allowing LSM programs: none can be attached to socket_sendmsg without CONFIG_SECURITY_NETWORK. Fixes:7ae4eb14c5("bpf: Add ksock kfuncs") Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Mahe Tardy <mahe.tardy@gmail.com> Link: https://patch.msgid.link/20261019211006.2574350-4-sashal@kernel.org
This commit is contained in:
parent
ced6a0993e
commit
a81bd9262c
|
|
@ -258,7 +258,12 @@ BTF_ID_FLAGS(func, bpf_ksock_send, KF_SLEEPABLE)
|
|||
BTF_KFUNCS_END(ksock_kfunc_btf_ids)
|
||||
|
||||
#ifdef CONFIG_BPF_LSM
|
||||
BTF_ID_LIST_SINGLE(bpf_lsm_socket_sendmsg_id, func, bpf_lsm_socket_sendmsg)
|
||||
BTF_ID_LIST(bpf_lsm_socket_sendmsg_id)
|
||||
#ifdef CONFIG_SECURITY_NETWORK
|
||||
BTF_ID(func, bpf_lsm_socket_sendmsg)
|
||||
#else
|
||||
BTF_ID_UNUSED
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static int bpf_ksock_kfunc_filter(const struct bpf_prog *prog, u32 kfunc_id)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user