diff --git a/lib/select.c b/lib/select.c index 08468216f..ca0e24fb1 100644 --- a/lib/select.c +++ b/lib/select.c @@ -86,16 +86,12 @@ int Curl_wait_ms(timediff_t timeout_ms) } #if defined(MSDOS) delay(timeout_ms); -#elif defined(USE_WINSOCK) +#elif defined(WIN32) /* prevent overflow, timeout_ms is typecast to ULONG/DWORD. */ -#if TIMEDIFF_T_MAX > ULONG_MAX - if(timeout_ms > ULONG_MAX) -#if ULONG_MAX < INFINITE - timeout_ms = ULONG_MAX; -#else +#if TIMEDIFF_T_MAX >= ULONG_MAX + if(timeout_ms >= ULONG_MAX) timeout_ms = ULONG_MAX-1; - /* avoid waiting forever */ -#endif + /* don't use ULONG_MAX, because that is equal to INFINITE */ #endif Sleep((ULONG)timeout_ms); #else @@ -119,14 +115,6 @@ int Curl_wait_ms(timediff_t timeout_ms) #endif pending_tv.tv_sec = (time_t)tv_sec; pending_tv.tv_usec = (suseconds_t)tv_usec; -#elif defined(WIN32) /* maybe also others in the future */ -#if TIMEDIFF_T_MAX > LONG_MAX - /* tv_sec overflow check on Windows there we know it is long */ - if(tv_sec > LONG_MAX) - tv_sec = LONG_MAX; -#endif - pending_tv.tv_sec = (long)tv_sec; - pending_tv.tv_usec = (long)tv_usec; #else #if TIMEDIFF_T_MAX > INT_MAX /* tv_sec overflow check in case time_t is signed */