diff options
author | Mickaël Salaün <[email protected]> | 2015-12-29 21:35:44 +0100 |
---|---|---|
committer | Richard Weinberger <[email protected]> | 2016-01-10 21:49:48 +0100 |
commit | e04c989eb785af61d2895d76d38c09166296f9c5 (patch) | |
tree | a4698bceed0851ec151539c275e5d615da506d36 /arch/um/os-Linux/skas/process.c | |
parent | a7df4716d19594b7b3f106f0bc0ca1c548e508e6 (diff) |
um: Fix ptrace GETREGS/SETREGS bugs
This fix two related bugs:
* PTRACE_GETREGS doesn't get the right orig_ax (syscall) value
* PTRACE_SETREGS can't set the orig_ax value (erased by initial value)
Get rid of the now useless and error-prone get_syscall().
Fix inconsistent behavior in the ptrace implementation for i386 when
updating orig_eax automatically update the syscall number as well. This
is now updated in handle_syscall().
Signed-off-by: Mickaël Salaün <[email protected]>
Cc: Jeff Dike <[email protected]>
Cc: Richard Weinberger <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Kees Cook <[email protected]>
Cc: Andy Lutomirski <[email protected]>
Cc: Will Drewry <[email protected]>
Cc: Thomas Meyer <[email protected]>
Cc: Nicolas Iooss <[email protected]>
Cc: Anton Ivanov <[email protected]>
Cc: Meredydd Luff <[email protected]>
Cc: David Drysdale <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Acked-by: Kees Cook <[email protected]>
Diffstat (limited to 'arch/um/os-Linux/skas/process.c')
-rw-r--r-- | arch/um/os-Linux/skas/process.c | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c index b856c66ebd3a..23025d645160 100644 --- a/arch/um/os-Linux/skas/process.c +++ b/arch/um/os-Linux/skas/process.c @@ -172,13 +172,6 @@ static void handle_trap(int pid, struct uml_pt_regs *regs, handle_syscall(regs); } -int get_syscall(struct uml_pt_regs *regs) -{ - UPT_SYSCALL_NR(regs) = PT_SYSCALL_NR(regs->gp); - - return UPT_SYSCALL_NR(regs); -} - extern char __syscall_stub_start[]; static int userspace_tramp(void *stack) |