summaryrefslogtreecommitdiff
path: root/ipc.c
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2010-03-31 22:22:01 +0000
committerDmitry V. Levin <ldv@altlinux.org>2010-03-31 22:22:01 +0000
commit4310a375e905840481862c6c351152fe29df81c9 (patch)
treeceffa1275ad5a5ee9f2d882b840f86d0e5a0245f /ipc.c
parentbab894067478879f42d764dea6130a177759ffe6 (diff)
downloadstrace-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.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/ipc.c b/ipc.c
index 553aa81..4c902bf 100644
--- a/ipc.c
+++ b/ipc.c
@@ -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;