diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2022-08-27 15:31:12 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2022-08-27 15:31:12 -0700 |
commit | 17b28d4267d9d9dd11d42eea1d41cd3f5f5a4273 (patch) | |
tree | 2eeaec83fe8734f035e93f975a07c6a116830bc8 /kernel | |
parent | 89b749d8552d78c4dd86dea86e2e6ba8aafab9fe (diff) | |
parent | d4fefa4801a1c2f9c0c7a48fbb0fdf384e89a4ab (diff) | |
download | linux-17b28d4267d9d9dd11d42eea1d41cd3f5f5a4273.tar.gz linux-17b28d4267d9d9dd11d42eea1d41cd3f5f5a4273.tar.bz2 linux-17b28d4267d9d9dd11d42eea1d41cd3f5f5a4273.zip |
Merge tag 'audit-pr-20220826' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit
Pull audit fix from Paul Moore:
"Another small audit patch, this time to fix a bug where the return
codes were not properly set before the audit filters were run,
potentially resulting in missed audit records"
* tag 'audit-pr-20220826' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
audit: move audit_return_fixup before the filters
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/auditsc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index dd8d9ab747c3..79a5da1bc5bb 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c @@ -1940,6 +1940,7 @@ void __audit_uring_exit(int success, long code) goto out; } + audit_return_fixup(ctx, success, code); if (ctx->context == AUDIT_CTX_SYSCALL) { /* * NOTE: See the note in __audit_uring_entry() about the case @@ -1981,7 +1982,6 @@ void __audit_uring_exit(int success, long code) audit_filter_inodes(current, ctx); if (ctx->current_state != AUDIT_STATE_RECORD) goto out; - audit_return_fixup(ctx, success, code); audit_log_exit(); out: @@ -2065,13 +2065,13 @@ void __audit_syscall_exit(int success, long return_code) if (!list_empty(&context->killed_trees)) audit_kill_trees(context); + audit_return_fixup(context, success, return_code); /* run through both filters to ensure we set the filterkey properly */ audit_filter_syscall(current, context); audit_filter_inodes(current, context); if (context->current_state < AUDIT_STATE_RECORD) goto out; - audit_return_fixup(context, success, return_code); audit_log_exit(); out: |