diff options
author | AKASHI Takahiro <takahiro.akashi@linaro.org> | 2014-07-04 08:28:31 +0100 |
---|---|---|
committer | Kees Cook <keescook@google.com> | 2016-04-08 12:32:01 -0700 |
commit | ce07f946522327284e932e31ffb6636d36c14da8 (patch) | |
tree | 65be584924e7674f2549acc23085070cc44ffff1 | |
parent | a0b06047bffc40d9399055ff39af2ba297c8bf4e (diff) | |
download | qcom-msm-v3.10-ce07f946522327284e932e31ffb6636d36c14da8.tar.gz |
BACKPORT: arm64: audit: Add audit hook in syscall_trace_enter/exit()
This patch adds auditing functions on entry to or exit from
every system call invocation.
Acked-by: Richard Guy Briggs <rgb@redhat.com>
Acked-by Will Deacon <will.deacon@arm.com>
Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Bug: 28020023
Patchset: seccomp
(cherry picked from kernel/msm commit 4f310329852098cbac19bd3bb1bddfa8f71e4ed9)
Signed-off-by: Kees Cook <keescook@google.com>
Change-Id: I927981d07cce904e10184348cc90dc750c8a1625
-rw-r--r-- | arch/arm64/kernel/ptrace.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c index 7c8e809bdbd..161e41ce46b 100644 --- a/arch/arm64/kernel/ptrace.c +++ b/arch/arm64/kernel/ptrace.c @@ -19,6 +19,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <linux/audit.h> #include <linux/compat.h> #include <linux/kernel.h> #include <linux/sched.h> @@ -39,6 +40,7 @@ #include <asm/compat.h> #include <asm/debug-monitors.h> #include <asm/pgtable.h> +#include <asm/syscall.h> #include <asm/traps.h> #include <asm/system_misc.h> @@ -1111,11 +1113,16 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs) if (test_thread_flag(TIF_SYSCALL_TRACEPOINT)) trace_sys_enter(regs, regs->syscallno); + audit_syscall_entry(syscall_get_arch(), regs->syscallno, + regs->orig_x0, regs->regs[1], regs->regs[2], regs->regs[3]); + return regs->syscallno; } asmlinkage void syscall_trace_exit(struct pt_regs *regs) { + audit_syscall_exit(regs); + if (test_thread_flag(TIF_SYSCALL_TRACEPOINT)) trace_sys_exit(regs, regs_return_value(regs)); |