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

Commit 532f57da authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'audit.b10' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:
  [PATCH] Audit Filter Performance
  [PATCH] Rework of IPC auditing
  [PATCH] More user space subject labels
  [PATCH] Reworked patch for labels on user space messages
  [PATCH] change lspp ipc auditing
  [PATCH] audit inode patch
  [PATCH] support for context based audit filtering, part 2
  [PATCH] support for context based audit filtering
  [PATCH] no need to wank with task_lock() and pinning task down in audit_syscall_exit()
  [PATCH] drop task argument of audit_syscall_{entry,exit}
  [PATCH] drop gfp_mask in audit_log_exit()
  [PATCH] move call of audit_free() into do_exit()
  [PATCH] sockaddr patch
  [PATCH] deal with deadlocks in audit_free()
parents 46c5ea3c 2ad312d2
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -671,7 +671,7 @@ int do_syscall_trace(struct pt_regs *regs, int entryexit)

	if (unlikely(current->audit_context)) {
		if (entryexit)
			audit_syscall_exit(current, AUDITSC_RESULT(regs->eax),
			audit_syscall_exit(AUDITSC_RESULT(regs->eax),
						regs->eax);
		/* Debug traps, when using PTRACE_SINGLESTEP, must be sent only
		 * on the syscall exit path. Normally, when TIF_SYSCALL_AUDIT is
@@ -720,14 +720,13 @@ int do_syscall_trace(struct pt_regs *regs, int entryexit)
	ret = is_sysemu;
out:
	if (unlikely(current->audit_context) && !entryexit)
		audit_syscall_entry(current, AUDIT_ARCH_I386, regs->orig_eax,
		audit_syscall_entry(AUDIT_ARCH_I386, regs->orig_eax,
				    regs->ebx, regs->ecx, regs->edx, regs->esi);
	if (ret == 0)
		return 0;

	regs->orig_eax = -1; /* force skip of syscall restarting */
	if (unlikely(current->audit_context))
		audit_syscall_exit(current, AUDITSC_RESULT(regs->eax),
				regs->eax);
		audit_syscall_exit(AUDITSC_RESULT(regs->eax), regs->eax);
	return 1;
}
+1 −1
Original line number Diff line number Diff line
@@ -312,7 +312,7 @@ static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk

	/*call audit_syscall_exit since we do not exit via the normal paths */
	if (unlikely(current->audit_context))
		audit_syscall_exit(current, AUDITSC_RESULT(eax), eax);
		audit_syscall_exit(AUDITSC_RESULT(eax), eax);

	__asm__ __volatile__(
		"movl %0,%%esp\n\t"
+2 −2
Original line number Diff line number Diff line
@@ -1644,7 +1644,7 @@ syscall_trace_enter (long arg0, long arg1, long arg2, long arg3,
			arch = AUDIT_ARCH_IA64;
		}

		audit_syscall_entry(current, arch, syscall, arg0, arg1, arg2, arg3);
		audit_syscall_entry(arch, syscall, arg0, arg1, arg2, arg3);
	}

}
@@ -1662,7 +1662,7 @@ syscall_trace_leave (long arg0, long arg1, long arg2, long arg3,

		if (success != AUDITSC_SUCCESS)
			result = -result;
		audit_syscall_exit(current, success, result);
		audit_syscall_exit(success, result);
	}

	if (test_thread_flag(TIF_SYSCALL_TRACE)
+2 −2
Original line number Diff line number Diff line
@@ -483,7 +483,7 @@ static inline int audit_arch(void)
asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit)
{
	if (unlikely(current->audit_context) && entryexit)
		audit_syscall_exit(current, AUDITSC_RESULT(regs->regs[2]),
		audit_syscall_exit(AUDITSC_RESULT(regs->regs[2]),
		                   regs->regs[2]);

	if (!(current->ptrace & PT_PTRACED))
@@ -507,7 +507,7 @@ asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit)
	}
 out:
	if (unlikely(current->audit_context) && !entryexit)
		audit_syscall_entry(current, audit_arch(), regs->regs[2],
		audit_syscall_entry(audit_arch(), regs->regs[2],
				    regs->regs[4], regs->regs[5],
				    regs->regs[6], regs->regs[7]);
}
+2 −3
Original line number Diff line number Diff line
@@ -538,7 +538,7 @@ void do_syscall_trace_enter(struct pt_regs *regs)
		do_syscall_trace();

	if (unlikely(current->audit_context))
		audit_syscall_entry(current,
		audit_syscall_entry(
#ifdef CONFIG_PPC32
				    AUDIT_ARCH_PPC,
#else
@@ -556,8 +556,7 @@ void do_syscall_trace_leave(struct pt_regs *regs)
#endif

	if (unlikely(current->audit_context))
		audit_syscall_exit(current,
				   (regs->ccr&0x1000)?AUDITSC_FAILURE:AUDITSC_SUCCESS,
		audit_syscall_exit((regs->ccr&0x1000)?AUDITSC_FAILURE:AUDITSC_SUCCESS,
				   regs->result);

	if ((test_thread_flag(TIF_SYSCALL_TRACE)
Loading