summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRicardo Robaina <rrobaina@redhat.com>2026-05-14 00:47:59 +0300
committerPaul Moore <paul@paul-moore.com>2026-05-27 02:00:15 +0300
commit888a0396e154524f4027f27da84bdbec9eb68916 (patch)
tree2907aee13bb41df3a84e44cb45640c02064a5cde /include
parent8b226771014beab1292081151a99530886ce54b4 (diff)
downloadlinux-888a0396e154524f4027f27da84bdbec9eb68916.tar.xz
audit: fix removal of dangling executable rules
When an audited executable is deleted from the disk, its dentry becomes negative. Any later attempt to delete the associated audit rule will lead to audit_alloc_mark() encountering this negative dentry and immediately aborting, returning -ENOENT. This early abort prevents the subsystem from allocating the temporary fsnotify mark needed to construct the search key, meaning the kernel cannot find the existing rule in its own lists to delete it. This leaves a dangling rule in memory, resulting in the following error while attempting to delete the rule: # ./audit-dupe-exe-deadlock.sh No rules Error deleting rule (No such file or directory) There was an error while processing parameters # auditctl -l -a always,exit -S all -F exe=/tmp/file -F path=/tmp/file -F key=dr # auditctl -D Error deleting rule (No such file or directory) There was an error while processing parameters This patch fixes this issue by removing the d_really_is_negative() check. By doing so, a dummy mark can be successfully generated for the deleted path, which allows the audit subsystem to properly match and flush the dangling rule. Cc: stable@kernel.org Fixes: 76a53de6f7ff ("VFS/audit: introduce kern_path_parent() for audit") Acked-by: Waiman Long <longman@redhat.com> Acked-by: Richard Guy Briggs <rgb@redhat.com> Signed-off-by: Ricardo Robaina <rrobaina@redhat.com> Signed-off-by: Paul Moore <paul@paul-moore.com>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions