From 5c41ffabdb648f9bc0c0a8cd451926147d12b776 Mon Sep 17 00:00:00 2001 From: Bruno Dal Bo Date: Thu, 4 Jan 2024 07:20:52 -0800 Subject: [PATCH] Fix select call in socket utils From the `select` manpage: ``` nfds This argument should be set to the highest-numbered file descriptor in any of the three sets, plus 1... ``` PiperOrigin-RevId: 595697728 --- test/util/socket_util.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/util/socket_util.cc b/test/util/socket_util.cc index af241082d..7a1b232fb 100644 --- a/test/util/socket_util.cc +++ b/test/util/socket_util.cc @@ -771,7 +771,8 @@ PosixErrorOr RecvTimeout(int sock, char buf[], int buf_size, int timeout) { FD_ZERO(&rfd); FD_SET(sock, &rfd); int ret; - RETURN_ERROR_IF_SYSCALL_FAIL(ret = select(1, &rfd, NULL, NULL, to_ptr)); + RETURN_ERROR_IF_SYSCALL_FAIL(ret = + select(sock + 1, &rfd, NULL, NULL, to_ptr)); RETURN_ERROR_IF_SYSCALL_FAIL( ret = RetryEINTR(recv)(sock, buf, buf_size, MSG_DONTWAIT)); return ret; @@ -785,7 +786,8 @@ PosixErrorOr RecvMsgTimeout(int sock, struct msghdr* msg, int timeout) { FD_SET(sock, &rfd); int ret; - RETURN_ERROR_IF_SYSCALL_FAIL(ret = select(1, &rfd, NULL, NULL, to_ptr)); + RETURN_ERROR_IF_SYSCALL_FAIL(ret = + select(sock + 1, &rfd, NULL, NULL, to_ptr)); RETURN_ERROR_IF_SYSCALL_FAIL( ret = RetryEINTR(recvmsg)(sock, msg, MSG_DONTWAIT)); return ret;