浏览代码

fix regression in recvmmsg with no timeout

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.
Rich Felker 5 年之前
父节点
当前提交
37d6d09ec6
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      src/network/recvmmsg.c

+ 1 - 1
src/network/recvmmsg.c

@@ -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,