File tree Expand file tree Collapse file tree 3 files changed +10
-1
lines changed Expand file tree Collapse file tree 3 files changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,7 @@ config XTENSA
21
21
select GENERIC_PCI_IOMAP
22
22
select GENERIC_SCHED_CLOCK
23
23
select GENERIC_STRNCPY_FROM_USER if KASAN
24
+ select HAVE_ARCH_AUDITSYSCALL
24
25
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
25
26
select HAVE_ARCH_KASAN if MMU && !XIP_KERNEL
26
27
select HAVE_ARCH_TRACEHOOK
Original file line number Diff line number Diff line change @@ -111,15 +111,17 @@ static inline struct thread_info *current_thread_info(void)
111
111
#define TIF_RESTORE_SIGMASK 6 /* restore signal mask in do_signal() */
112
112
#define TIF_NOTIFY_RESUME 7 /* callback before returning to user */
113
113
#define TIF_DB_DISABLED 8 /* debug trap disabled for syscall */
114
+ #define TIF_SYSCALL_AUDIT 9 /* syscall auditing active */
114
115
115
116
#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
116
117
#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)
117
118
#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
118
119
#define _TIF_SINGLESTEP (1<<TIF_SINGLESTEP)
119
120
#define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
121
+ #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)
120
122
121
123
#define _TIF_WORK_MASK (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP | \
122
- _TIF_SYSCALL_TRACEPOINT)
124
+ _TIF_SYSCALL_TRACEPOINT | _TIF_SYSCALL_AUDIT )
123
125
124
126
#define THREAD_SIZE KERNEL_STACK_SIZE
125
127
#define THREAD_SIZE_ORDER (KERNEL_STACK_SHIFT - PAGE_SHIFT)
Original file line number Diff line number Diff line change 12
12
13
13
*/
14
14
15
+ #include <linux/audit.h>
15
16
#include <linux/errno.h>
16
17
#include <linux/hw_breakpoint.h>
17
18
#include <linux/kernel.h>
@@ -562,13 +563,18 @@ int do_syscall_trace_enter(struct pt_regs *regs)
562
563
if (test_thread_flag (TIF_SYSCALL_TRACEPOINT ))
563
564
trace_sys_enter (regs , syscall_get_nr (current , regs ));
564
565
566
+ audit_syscall_entry (regs -> syscall , regs -> areg [6 ],
567
+ regs -> areg [3 ], regs -> areg [4 ],
568
+ regs -> areg [5 ]);
565
569
return 1 ;
566
570
}
567
571
568
572
void do_syscall_trace_leave (struct pt_regs * regs )
569
573
{
570
574
int step ;
571
575
576
+ audit_syscall_exit (regs );
577
+
572
578
if (test_thread_flag (TIF_SYSCALL_TRACEPOINT ))
573
579
trace_sys_exit (regs , regs_return_value (regs ));
574
580
You can’t perform that action at this time.
0 commit comments