mirror of
https://github.com/moparisthebest/curl
synced 2024-12-23 08:38:49 -05:00
select.h: make socket validation macros test for INVALID_SOCKET
With Winsock the valid range is [0..INVALID_SOCKET-1] according to https://docs.microsoft.com/en-us/windows/win32/winsock/socket-data-type-2 Reviewed-by: Jay Satiro Reviewed-by: Marcel Raad Reviewed-by: Daniel Stenberg Closes #5760
This commit is contained in:
parent
3a9042ea14
commit
0f7c332f9f
15
lib/select.h
15
lib/select.h
@ -94,12 +94,23 @@ int tpf_select_libcurl(int maxfds, fd_set* reads, fd_set* writes,
|
||||
fd_set* excepts, struct timeval *tv);
|
||||
#endif
|
||||
|
||||
/* Winsock and TPF sockets are not in range [0..FD_SETSIZE-1], which
|
||||
/* TPF sockets are not in range [0..FD_SETSIZE-1], which
|
||||
unfortunately makes it impossible for us to easily check if they're valid
|
||||
|
||||
With Winsock the valid range is [0..INVALID_SOCKET-1] according to
|
||||
https://docs.microsoft.com/en-us/windows/win32/winsock/socket-data-type-2
|
||||
*/
|
||||
#if defined(USE_WINSOCK) || defined(TPF)
|
||||
#if defined(TPF)
|
||||
#define VALID_SOCK(x) 1
|
||||
#define VERIFY_SOCK(x) Curl_nop_stmt
|
||||
#elif defined(USE_WINSOCK)
|
||||
#define VALID_SOCK(s) ((s) < INVALID_SOCKET)
|
||||
#define VERIFY_SOCK(x) do { \
|
||||
if(!VALID_SOCK(x)) { \
|
||||
SET_SOCKERRNO(WSAEINVAL); \
|
||||
return -1; \
|
||||
} \
|
||||
} while(0)
|
||||
#else
|
||||
#define VALID_SOCK(s) (((s) >= 0) && ((s) < FD_SETSIZE))
|
||||
#define VERIFY_SOCK(x) do { \
|
||||
|
Loading…
Reference in New Issue
Block a user