fix regression in recvmmsg with no timeout
authorRich Felker <dalias@aerifal.cx>
Thu, 8 Aug 2019 01:28:37 +0000 (21:28 -0400)
committerRich Felker <dalias@aerifal.cx>
Thu, 8 Aug 2019 01:28:37 +0000 (21:28 -0400)
somewhat analogous to commit d0b547dfb5f7678cab6bc39dd736ed6454357ca4,
but here the omission of the null timeout check was in the time64
syscall code path. this code is not yet used except on x32.

src/network/recvmmsg.c

index 1dc67932dafc430c3eb9577c0b3431bb91854ca8..d5dc6b51cb8be7b93a99179734ede4d2ad7362cb 100644 (file)
@@ -22,7 +22,7 @@ int recvmmsg(int fd, struct mmsghdr *msgvec, unsigned int vlen, unsigned int fla
        int r = -ENOSYS;
        if (SYS_recvmmsg == SYS_recvmmsg_time64 || !IS32BIT(s))
                r = __syscall_cp(SYS_recvmmsg_time64, fd, msgvec, vlen, flags,
-                       ((long long[]){s, ns}));
+                       timeout ? ((long long[]){s, ns}) : 0);
        if (SYS_recvmmsg == SYS_recvmmsg_time64 || r!=-ENOSYS)
                return __syscall_ret(r);
        return syscall_cp(SYS_recvmmsg, fd, msgvec, vlen, flags,