From: Mark Swaanenburg Date: Fri, 11 Jun 2021 06:27:00 +0000 (+0000) Subject: lib: don't compare fd to FD_SETSIZE when using poll X-Git-Tag: curl-7_78_0~155 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d293bf4a789e7a02dd5ea40bcd81d23698859641;p=thirdparty%2Fcurl.git lib: don't compare fd to FD_SETSIZE when using poll FD_SETSIZE is irrelevant when using poll. So ensuring that the file descriptor is smaller than FD_SETSIZE in VALID_SOCK, can cause multi_wait to ignore perfectly valid file descriptors and simply wait for 1s to avoid hammering the CPU in a busy loop. Fixes #7240 Closes #7241 --- diff --git a/lib/select.h b/lib/select.h index 4db64877bb..19da1e774b 100644 --- a/lib/select.h +++ b/lib/select.h @@ -106,7 +106,11 @@ int tpf_select_libcurl(int maxfds, fd_set* reads, fd_set* writes, } \ } while(0) #else +#ifdef HAVE_POLL_FINE +#define VALID_SOCK(s) ((s) >= 0) /* FD_SETSIZE is irrelevant for poll */ +#else #define VALID_SOCK(s) (((s) >= 0) && ((s) < FD_SETSIZE)) +#endif #define VERIFY_SOCK(x) do { \ if(!VALID_SOCK(x)) { \ SET_SOCKERRNO(EINVAL); \