aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2022-05-18 14:19:26 -1000
committerLinus Torvalds <torvalds@linux-foundation.org>2022-05-18 14:19:26 -1000
commit8194a0089207e8fff75a4dee2b98b0a537be2c54 (patch)
tree37fa45b337dd2f7febf87eff021eb36c07c61246
parent6899c161313671ca37a7a56429a3a80dad56ee8a (diff)
parent69e9cd66ae1392437234a63a3a1d60b6655f92ef (diff)
downloadlinux-8194a0089207e8fff75a4dee2b98b0a537be2c54.tar.gz
Merge tag 'audit-pr-20220518' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit
Pull audit fix from Paul Moore: "A single audit patch to fix a problem where a task's audit_context was not being properly reset with io_uring" * tag 'audit-pr-20220518' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit: audit,io_uring,io-wq: call __audit_uring_exit for dummy contexts
-rw-r--r--include/linux/audit.h2
-rw-r--r--kernel/auditsc.c6
2 files changed, 7 insertions, 1 deletions
diff --git a/include/linux/audit.h b/include/linux/audit.h
index d06134ac6245f..cece702311388 100644
--- a/include/linux/audit.h
+++ b/include/linux/audit.h
@@ -339,7 +339,7 @@ static inline void audit_uring_entry(u8 op)
}
static inline void audit_uring_exit(int success, long code)
{
- if (unlikely(!audit_dummy_context()))
+ if (unlikely(audit_context()))
__audit_uring_exit(success, code);
}
static inline void audit_syscall_entry(int major, unsigned long a0,
diff --git a/kernel/auditsc.c b/kernel/auditsc.c
index ea2ee1181921e..f3a2abd6d1a19 100644
--- a/kernel/auditsc.c
+++ b/kernel/auditsc.c
@@ -1959,6 +1959,12 @@ void __audit_uring_exit(int success, long code)
{
struct audit_context *ctx = audit_context();
+ if (ctx->dummy) {
+ if (ctx->context != AUDIT_CTX_URING)
+ return;
+ goto out;
+ }
+
if (ctx->context == AUDIT_CTX_SYSCALL) {
/*
* NOTE: See the note in __audit_uring_entry() about the case