diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2010-03-31 22:22:01 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2010-03-31 22:22:01 +0000 |
commit | 4310a375e905840481862c6c351152fe29df81c9 (patch) | |
tree | ceffa1275ad5a5ee9f2d882b840f86d0e5a0245f /ipc.c | |
parent | bab894067478879f42d764dea6130a177759ffe6 (diff) | |
download | strace-4310a375e905840481862c6c351152fe29df81c9.tar.gz strace-4310a375e905840481862c6c351152fe29df81c9.tar.bz2 strace-4310a375e905840481862c6c351152fe29df81c9.tar.xz |
Fix msgsnd indirect ipccall decoding
This regression was introduced by commit v4.5.18-136-g783f5bc.
* ipc.c (tprint_msgsnd): Add and use "flags" argument.
(sys_msgsnd): Pass "flags" argument to tprint_msgsnd().
Patch by Anton Blanchard.
Diffstat (limited to 'ipc.c')
-rw-r--r-- | ipc.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -212,7 +212,8 @@ struct tcb *tcp; } static void -tprint_msgsnd(struct tcb *tcp, long addr, unsigned long count) +tprint_msgsnd(struct tcb *tcp, long addr, unsigned long count, + unsigned long flags) { long mtype; @@ -224,7 +225,7 @@ tprint_msgsnd(struct tcb *tcp, long addr, unsigned long count) tprintf("}"); } tprintf(", %lu, ", count); - printflags(msg_flags, tcp->u_arg[3], "MSG_???"); + printflags(msg_flags, flags, "MSG_???"); } int sys_msgsnd(struct tcb *tcp) @@ -232,9 +233,11 @@ int sys_msgsnd(struct tcb *tcp) if (entering(tcp)) { tprintf("%d, ", (int) tcp->u_arg[0]); if (indirect_ipccall(tcp)) { - tprint_msgsnd(tcp, tcp->u_arg[3], tcp->u_arg[1]); + tprint_msgsnd(tcp, tcp->u_arg[3], tcp->u_arg[1], + tcp->u_arg[2]); } else { - tprint_msgsnd(tcp, tcp->u_arg[1], tcp->u_arg[2]); + tprint_msgsnd(tcp, tcp->u_arg[1], tcp->u_arg[2], + tcp->u_arg[3]); } } return 0; |