[RFC PATCH bpf-next 04/12] bpf: mark struct path trusted
Justin Suess
utilityemal77 at gmail.com
Tue Oct 6 00:20:11 UTC 2026
Walking a trusted struct path yields a trusted dentry - a live path
never carries a NULL dentry - so BPF programs can use it with kfuncs
that require trusted arguments.
Signed-off-by: Song Liu <song at kernel.org>
[justin: carried only the verifier.c hunk of the original patch,
trusted instead of trusted-or-null]
Signed-off-by: Justin Suess <utilityemal77 at gmail.com>
---
kernel/bpf/verifier.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index fd3c0206bd67..24ec4b037de7 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -6300,6 +6300,10 @@ BTF_TYPE_SAFE_TRUSTED(struct scx_sub_detach_args) {
struct sched_ext_ops *ops;
};
+BTF_TYPE_SAFE_TRUSTED(struct path) {
+ struct dentry *dentry;
+};
+
BTF_TYPE_SAFE_TRUSTED_OR_NULL(struct dentry) {
struct inode *d_inode;
};
@@ -6352,6 +6356,7 @@ static bool type_is_trusted(struct bpf_verifier_env *env,
BTF_TYPE_EMIT(BTF_TYPE_SAFE_TRUSTED(struct scx_cpu_release_args));
BTF_TYPE_EMIT(BTF_TYPE_SAFE_TRUSTED(struct scx_sub_attach_args));
BTF_TYPE_EMIT(BTF_TYPE_SAFE_TRUSTED(struct scx_sub_detach_args));
+ BTF_TYPE_EMIT(BTF_TYPE_SAFE_TRUSTED(struct path));
return btf_nested_type_is_trusted(&env->log, reg, field_name, btf_id, "__safe_trusted");
}
--
2.55.0
More information about the Linux-security-module-archive
mailing list