]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
get rid of audit_reusename()
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 1 Nov 2025 05:54:52 +0000 (01:54 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 13 Jan 2026 20:16:44 +0000 (15:16 -0500)
commit41670a5900a8866b8cab52ab5936b5e9ef06fe91
treed31fbb612a3c339c8b37eaf0cc4bc76947df9466
parent1ee5220eb364f7ac22fc6102e61c7b33e593f365
get rid of audit_reusename()

Originally we tried to avoid multiple insertions into audit names array
during retry loop by a cute hack - memorize the userland pointer and
if there already is a match, just grab an extra reference to it.

Cute as it had been, it had problems - two identical pointers had
audit aux entries merged, two identical strings did not.  Having
different behaviour for syscalls that differ only by addresses of
otherwise identical string arguments is obviously wrong - if nothing
else, compiler can decide to merge identical string literals.

Besides, this hack does nothing for non-audited processes - they get
a fresh copy for retry.  It's not time-critical, but having behaviour
subtly differ that way is bogus.

These days we have very few places that import filename more than once
(9 functions total) and it's easy to massage them so we get rid of all
re-imports.  With that done, we don't need audit_reusename() anymore.
There's no need to memorize userland pointer either.

Acked-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/namei.c
include/linux/audit.h
include/linux/fs.h
kernel/auditsc.c