Fix simultaneous -e read and -e write usage
This allows using both -e read=FD and -e write=FD at the same time
with the same FD.
Without this patch, the -e write=FD is ignored if -e read=FD is used
at the same time.
Signed-off-by: Aurelien Jacobs <aurel@gnuage.org>
diff --git a/syscall.c b/syscall.c
index 51771c2..dfeef77 100644
--- a/syscall.c
+++ b/syscall.c
@@ -2494,17 +2494,21 @@
if (func == sys_read ||
func == sys_pread ||
func == sys_recv ||
- func == sys_recvfrom)
+ func == sys_recvfrom) {
dumpstr(tcp, tcp->u_arg[1], tcp->u_rval);
- else if (func == sys_readv)
+ return;
+ } else if (func == sys_readv) {
dumpiov(tcp, tcp->u_arg[2], tcp->u_arg[1]);
+ return;
#if HAVE_SENDMSG
- else if (func == sys_recvmsg)
+ } else if (func == sys_recvmsg) {
dumpiov_in_msghdr(tcp, tcp->u_arg[1]);
- else if (func == sys_recvmmsg)
+ return;
+ } else if (func == sys_recvmmsg) {
dumpiov_in_mmsghdr(tcp, tcp->u_arg[1]);
+ return;
#endif
- return;
+ }
}
if (qual_flags[tcp->u_arg[0]] & QUAL_WRITE) {
if (func == sys_write ||
@@ -2520,7 +2524,6 @@
else if (func == sys_sendmmsg)
dumpiov_in_mmsghdr(tcp, tcp->u_arg[1]);
#endif
- return;
}
}