| From 863774451f69de9853ca6c8d2d31a17a6ef39aef Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 25 Aug 2022 15:32:39 -0400 |
| Subject: audit: free audit_proctitle only on task exit |
| |
| From: Richard Guy Briggs <rgb@redhat.com> |
| |
| [ Upstream commit c3f3ea8af44d0c5fba79fe8b198087342d0c7e04 ] |
| |
| Since audit_proctitle is generated at syscall exit time, its value is |
| used immediately and cached for the next syscall. Since this is the |
| case, then only clear it at task exit time. Otherwise, there is no |
| point in caching the value OR bearing the overhead of regenerating it. |
| |
| Fixes: 12c5e81d3fd0 ("audit: prepare audit_context for use in calling contexts beyond syscalls") |
| Signed-off-by: Richard Guy Briggs <rgb@redhat.com> |
| Signed-off-by: Paul Moore <paul@paul-moore.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| kernel/auditsc.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/kernel/auditsc.c b/kernel/auditsc.c |
| index 65d816cda5df..73121c0185ce 100644 |
| --- a/kernel/auditsc.c |
| +++ b/kernel/auditsc.c |
| @@ -1016,7 +1016,6 @@ static void audit_reset_context(struct audit_context *ctx) |
| WARN_ON(!list_empty(&ctx->killed_trees)); |
| audit_free_module(ctx); |
| ctx->fds[0] = -1; |
| - audit_proctitle_free(ctx); |
| ctx->type = 0; /* reset last for audit_free_*() */ |
| } |
| |
| @@ -1102,6 +1101,7 @@ static inline void audit_free_context(struct audit_context *context) |
| { |
| /* resetting is extra work, but it is likely just noise */ |
| audit_reset_context(context); |
| + audit_proctitle_free(context); |
| free_tree_refs(context); |
| kfree(context->filterkey); |
| kfree(context); |
| -- |
| 2.35.1 |
| |