diff options
author | Christian Brauner <brauner@kernel.org> | 2025-04-14 22:13:33 +0200 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2025-04-15 11:32:34 +0200 |
commit | c86b300b1ea35959a6e2a63a6497226a6ea90b67 (patch) | |
tree | a58eff52db91c26b171ad1485d0988ec1f8091cc /tools/testing/selftests/bpf/progs/test_autoload.c | |
parent | ddee68c499f76ae47c011549df5be53db0057402 (diff) | |
download | linux-c86b300b1ea35959a6e2a63a6497226a6ea90b67.tar.gz linux-c86b300b1ea35959a6e2a63a6497226a6ea90b67.tar.bz2 linux-c86b300b1ea35959a6e2a63a6497226a6ea90b67.zip |
fs: add kern_path_locked_negative()
The audit code relies on the fact that kern_path_locked() returned a
path even for a negative dentry. If it doesn't find a valid dentry it
immediately calls:
audit_find_parent(d_backing_inode(parent_path.dentry));
which assumes that parent_path.dentry is still valid. But it isn't since
kern_path_locked() has been changed to path_put() also for a negative
dentry.
Fix this by adding a helper that implements the required audit semantics
and allows us to fix the immediate bleeding. We can find a unified
solution for this afterwards.
Link: https://lore.kernel.org/20250414-rennt-wimmeln-f186c3a780f1@brauner
Fixes: 1c3cb50b58c3 ("VFS: change kern_path_locked() and user_path_locked_at() to never return negative dentry")
Reported-and-tested-by: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'tools/testing/selftests/bpf/progs/test_autoload.c')
0 files changed, 0 insertions, 0 deletions