Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fa84cb93 authored by Al Viro's avatar Al Viro
Browse files

[PATCH] move call of audit_free() into do_exit()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent d6fe3945
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -698,19 +698,12 @@ static void audit_log_exit(struct audit_context *context, struct task_struct *ts
 * audit_free - free a per-task audit context
 * @tsk: task whose audit context block to free
 *
 * Called from copy_process and __put_task_struct.
 * Called from copy_process and do_exit
 */
void audit_free(struct task_struct *tsk)
{
	struct audit_context *context;

	/*
	 * No need to lock the task - when we execute audit_free()
	 * then the task has no external references anymore, and
	 * we are tearing it down. (The locking also confuses
	 * DEBUG_LOCKDEP - this freeing may occur in softirq
	 * contexts as well, via RCU.)
	 */
	context = audit_get_context(tsk, 0, 0);
	if (likely(!context))
		return;
+3 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@
#include <linux/futex.h>
#include <linux/compat.h>
#include <linux/pipe_fs_i.h>
#include <linux/audit.h> /* for audit_free() */

#include <asm/uaccess.h>
#include <asm/unistd.h>
@@ -910,6 +911,8 @@ fastcall NORET_TYPE void do_exit(long code)
	if (unlikely(tsk->compat_robust_list))
		compat_exit_robust_list(tsk);
#endif
	if (unlikely(tsk->audit_context))
		audit_free(tsk);
	exit_mm(tsk);

	exit_sem(tsk);
+0 −2
Original line number Diff line number Diff line
@@ -114,8 +114,6 @@ void __put_task_struct(struct task_struct *tsk)
	WARN_ON(atomic_read(&tsk->usage));
	WARN_ON(tsk == current);

	if (unlikely(tsk->audit_context))
		audit_free(tsk);
	security_task_free(tsk);
	free_uid(tsk->user);
	put_group_info(tsk->group_info);