diff options
author | Juan Cespedes <cespedes@coco.thehackers.org> | 2009-05-22 19:12:07 +0200 |
---|---|---|
committer | Juan Cespedes <cespedes@coco.thehackers.org> | 2009-05-22 19:12:07 +0200 |
commit | 3e94cbf0d388a5b5b49f8dbc60f4b24900de89ae (patch) | |
tree | 807917dc27f4a2783473ba116f362c455431cf2d /sysdeps/linux-gnu/x86_64/trace.c | |
parent | 30439b42294d678f2066522aecdb664132170a41 (diff) | |
download | ltrace-3e94cbf0d388a5b5b49f8dbc60f4b24900de89ae.tar.gz |
See syscalls as syscalls and not sysrets when we are a clone
Diffstat (limited to 'sysdeps/linux-gnu/x86_64/trace.c')
-rw-r--r-- | sysdeps/linux-gnu/x86_64/trace.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sysdeps/linux-gnu/x86_64/trace.c b/sysdeps/linux-gnu/x86_64/trace.c index 127b874..bbaa5f7 100644 --- a/sysdeps/linux-gnu/x86_64/trace.c +++ b/sysdeps/linux-gnu/x86_64/trace.c @@ -41,7 +41,8 @@ syscall_p(Process *proc, int status, int *sysnum) { *sysnum = ptrace(PTRACE_PEEKUSER, proc->pid, 8 * ORIG_RAX, 0); if (proc->callstack_depth > 0 && - proc->callstack[proc->callstack_depth - 1].is_syscall) { + proc->callstack[proc->callstack_depth - 1].is_syscall && + proc->callstack[proc->callstack_depth - 1].c_un.syscall == *sysnum) { return 2; } |