]> granicus.if.org Git - strace/commitdiff
Fix follow fork/vfork on Linux ARM OABI
authorDmitry V. Levin <ldv@altlinux.org>
Fri, 18 Sep 2009 11:30:14 +0000 (11:30 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Fri, 18 Sep 2009 12:18:03 +0000 (12:18 +0000)
__NR_SYSCALL_BASE eis 0 for EABI and is 0x900000 for OABI.
* process (change_syscall) [LINUX && ARM]: Mask off the high order bits
when changing syscall.

Signed-off-by: Steve Bennett <steveb@workware.net.au>
Reviewed-by: Kirill A. Shutemov <kirill@shutemov.name>
process.c

index 23bd41325d89f6e701d5ffdca21a4081ae544934..5d956b03eb13ff89e9973f6d8b546094179f642b 100644 (file)
--- a/process.c
+++ b/process.c
@@ -792,7 +792,7 @@ change_syscall(struct tcb *tcp, int new)
 #  define PTRACE_SET_SYSCALL 23
 # endif
 
-       if (ptrace (PTRACE_SET_SYSCALL, tcp->pid, 0, new) != 0)
+       if (ptrace (PTRACE_SET_SYSCALL, tcp->pid, 0, new & 0xffff) != 0)
                return -1;
 
        return 0;