Noteworthy changes in release ?.? (????-??-??)
==============================================
+* Bug fixes
+ * Fixed syscall tampering on powerpc and powerpc64 when
+ PTRACE_GET_SYSCALL_INFO is in use.
+
* Improvements
* Implemented decoding of open_tree, move_mount, fsopen, fsconfig, fsmount,
and fspick syscalls.
static int
arch_set_error(struct tcb *tcp)
{
+ if (ptrace_syscall_info_is_valid() &&
+ upeek(tcp, sizeof(long) * PT_CCR, &ppc_regs.ccr))
+ return -1;
ppc_regs.gpr[3] = tcp->u_error;
ppc_regs.ccr |= 0x10000000;
return upoke(tcp, sizeof(long) * PT_CCR, ppc_regs.ccr) ||
static int
arch_set_success(struct tcb *tcp)
{
+ if (ptrace_syscall_info_is_valid() &&
+ upeek(tcp, sizeof(long) * PT_CCR, &ppc_regs.ccr))
+ return -1;
ppc_regs.gpr[3] = tcp->u_rval;
ppc_regs.ccr &= ~0x10000000;
return upoke(tcp, sizeof(long) * PT_CCR, ppc_regs.ccr) ||