From: Dmitry V. Levin Date: Wed, 17 Aug 2016 21:58:37 +0000 (+0000) Subject: sparc64: fix decoding of the forth argument of semctl syscall X-Git-Tag: v4.14~189 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1a6470fc80031fc70b6c755e8d4f469bf98ad8aa;p=strace sparc64: fix decoding of the forth argument of semctl syscall On sparc64, unlike all other architectures where semctl is an indirect ipc subcall, the forth argument is passed directly. * ipc_sem.c (SYS_FUNC(semctl)) [SPARC64]: Print 4th argument without indirection in case of native personality. --- diff --git a/ipc_sem.c b/ipc_sem.c index bf82f330..e6172eef 100644 --- a/ipc_sem.c +++ b/ipc_sem.c @@ -117,7 +117,11 @@ SYS_FUNC(semctl) tprintf("%lu, %lu, ", tcp->u_arg[0], tcp->u_arg[1]); PRINTCTL(semctl_flags, tcp->u_arg[2], "SEM_???"); tprints(", "); - if (indirect_ipccall(tcp)) { + if (indirect_ipccall(tcp) +#ifdef SPARC64 + && current_personality != 0 +#endif + ) { printnum_ptr(tcp, tcp->u_arg[3]); } else { tprintf("%#lx", tcp->u_arg[3]);