diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2016-08-17 21:58:37 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2016-08-19 22:11:46 +0000 |
commit | 1a6470fc80031fc70b6c755e8d4f469bf98ad8aa (patch) | |
tree | c6dc95a4533859229764caceb898d7439c07ed23 /ipc_sem.c | |
parent | 4b69c4736cb9b44e0bd7bef16f7f8602b5d2f113 (diff) | |
download | strace-1a6470fc80031fc70b6c755e8d4f469bf98ad8aa.tar.gz |
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.
Diffstat (limited to 'ipc_sem.c')
-rw-r--r-- | ipc_sem.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -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]); |