Skip to content

Commit 8ac68dc

Browse files
committed
revert: 1320a40 ("audit: trigger accompanying records when no rules present")
Unfortunately the commit listed in the subject line above failed to ensure that the task's audit_context was properly initialized/set before enabling the "accompanying records". Depending on the situation, the resulting audit_context could have invalid values in some of it's fields which could cause a kernel panic/oops when the task/syscall exists and the audit records are generated. We will revisit the original patch, with the necessary fixes, in a future kernel but right now we just want to fix the kernel panic with the least amount of added risk. Cc: [email protected] Fixes: 1320a40 ("audit: trigger accompanying records when no rules present") Reported-by: [email protected] Signed-off-by: Paul Moore <[email protected]>
1 parent 9d44a12 commit 8ac68dc

File tree

3 files changed

+3
-9
lines changed

3 files changed

+3
-9
lines changed

kernel/audit.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1848,7 +1848,6 @@ struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask,
18481848
}
18491849

18501850
audit_get_stamp(ab->ctx, &t, &serial);
1851-
audit_clear_dummy(ab->ctx);
18521851
audit_log_format(ab, "audit(%llu.%03lu:%u): ",
18531852
(unsigned long long)t.tv_sec, t.tv_nsec/1000000, serial);
18541853

kernel/audit.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -290,13 +290,6 @@ extern int audit_signal_info_syscall(struct task_struct *t);
290290
extern void audit_filter_inodes(struct task_struct *tsk,
291291
struct audit_context *ctx);
292292
extern struct list_head *audit_killed_trees(void);
293-
294-
static inline void audit_clear_dummy(struct audit_context *ctx)
295-
{
296-
if (ctx)
297-
ctx->dummy = 0;
298-
}
299-
300293
#else /* CONFIG_AUDITSYSCALL */
301294
#define auditsc_get_stamp(c, t, s) 0
302295
#define audit_put_watch(w) {}
@@ -330,7 +323,6 @@ static inline int audit_signal_info_syscall(struct task_struct *t)
330323
}
331324

332325
#define audit_filter_inodes(t, c) AUDIT_DISABLED
333-
#define audit_clear_dummy(c) {}
334326
#endif /* CONFIG_AUDITSYSCALL */
335327

336328
extern char *audit_unpack_string(void **bufp, size_t *remain, size_t len);

kernel/auditsc.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1417,6 +1417,9 @@ static void audit_log_proctitle(void)
14171417
struct audit_context *context = audit_context();
14181418
struct audit_buffer *ab;
14191419

1420+
if (!context || context->dummy)
1421+
return;
1422+
14201423
ab = audit_log_start(context, GFP_KERNEL, AUDIT_PROCTITLE);
14211424
if (!ab)
14221425
return; /* audit_panic or being filtered */

0 commit comments

Comments
 (0)