[PATCH v5 2/4] bpf-lsm: Make bpf_lsm_userns_create() sleepable

From: Frederick Lawler
Date: Mon Aug 15 2022 - 12:21:38 EST


Users may want to audit calls to security_create_user_ns() and access
user space memory. Also create_user_ns() runs without
pagefault_disabled(). Therefore, make bpf_lsm_userns_create() sleepable
for mandatory access control policies.

Acked-by: Alexei Starovoitov <ast@xxxxxxxxxx>
Acked-by: Christian Brauner (Microsoft) <brauner@xxxxxxxxxx>
Acked-by: KP Singh <kpsingh@xxxxxxxxxx>
Signed-off-by: Frederick Lawler <fred@xxxxxxxxxxxxxx>

---
Changes since v4:
- None
Changes since v3:
- None
Changes since v2:
- Rename create_user_ns hook to userns_create
Changes since v1:
- None
---
kernel/bpf/bpf_lsm.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/kernel/bpf/bpf_lsm.c b/kernel/bpf/bpf_lsm.c
index fa71d58b7ded..761998fda762 100644
--- a/kernel/bpf/bpf_lsm.c
+++ b/kernel/bpf/bpf_lsm.c
@@ -335,6 +335,7 @@ BTF_ID(func, bpf_lsm_task_getsecid_obj)
BTF_ID(func, bpf_lsm_task_prctl)
BTF_ID(func, bpf_lsm_task_setscheduler)
BTF_ID(func, bpf_lsm_task_to_inode)
+BTF_ID(func, bpf_lsm_userns_create)
BTF_SET_END(sleepable_lsm_hooks)

bool bpf_lsm_is_sleepable_hook(u32 btf_id)
--
2.30.2