diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2020-09-20 15:37:15 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2020-09-20 15:37:15 -0700 |
commit | e2bff391caba23fb2780b2c9863b11aa25aaeb6f (patch) | |
tree | 8e4ca0cbe50184e7b8127f8881f6b4c3595162ab /kernel | |
parent | 1f8ee7e8521a496024fb504de9eacbb49bd9152a (diff) | |
parent | b6ec413461034d49f9e586845825adb35ba308f6 (diff) |
Merge tag 'core_urgent_for_v5.9_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull syscall tracing fix from Borislav Petkov:
"Fix the seccomp syscall rewriting so that trace and audit see the
rewritten syscall number, from Kees Cook"
* tag 'core_urgent_for_v5.9_rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
core/entry: Report syscall correctly for trace and audit
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/entry/common.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/entry/common.c b/kernel/entry/common.c index 18683598edbc..6fdb6105e6d6 100644 --- a/kernel/entry/common.c +++ b/kernel/entry/common.c @@ -60,13 +60,15 @@ static long syscall_trace_enter(struct pt_regs *regs, long syscall, return ret; } + /* Either of the above might have changed the syscall number */ + syscall = syscall_get_nr(current, regs); + if (unlikely(ti_work & _TIF_SYSCALL_TRACEPOINT)) trace_sys_enter(regs, syscall); syscall_enter_audit(regs, syscall); - /* The above might have changed the syscall number */ - return ret ? : syscall_get_nr(current, regs); + return ret ? : syscall; } static __always_inline long |