]> granicus.if.org Git - strace/commit
sparc, sparc64: fix syscall tampering when PTRACE_GET_SYSCALL_INFO is in use
authorDmitry V. Levin <ldv@altlinux.org>
Thu, 4 Jul 2019 18:25:49 +0000 (18:25 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Thu, 4 Jul 2019 18:25:49 +0000 (18:25 +0000)
commit1a1a23da04d9ea913d2e98c001b89e9f94873deb
treefe6cf44223ce06c645adb70a8f3adc0bac3bd3f9
parent0e2c0cc0f4c8885e1e6848db53a440d404cc7621
sparc, sparc64: fix syscall tampering when PTRACE_GET_SYSCALL_INFO is in use

When PTRACE_GET_SYSCALL_INFO is in use on sparc, psr is not loaded,
so it has to be loaded explicitly before tampering.
Likewise, when PTRACE_GET_SYSCALL_INFO is in use on sparc64, tstate
is not loaded, so it has to be loaded explicitly before tampering.

* linux/sparc/set_error.c (arch_set_error, arch_set_success): Explicitly
call get_regs before changing psr when PTRACE_GET_SYSCALL_INFO is in use.
* linux/sparc64/set_error.c (arch_set_error, arch_set_success):
Explicitly call get_regs before changing tstate when
PTRACE_GET_SYSCALL_INFO is in use.
* NEWS: Mention this fix.
NEWS
linux/sparc/set_error.c
linux/sparc64/set_error.c