From: Victor Stinner Date: Tue, 31 Mar 2015 14:31:19 +0000 (+0200) Subject: Issue #22117: Fix integer overflow check in socket_parse_timeout() on Windows X-Git-Tag: v3.5.0a4~233 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1bb0aef4d1e0e9c61056d190716f08aa26dd3c38;p=thirdparty%2FPython%2Fcpython.git Issue #22117: Fix integer overflow check in socket_parse_timeout() on Windows --- diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 2eea726081d9..a33c12740c18 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -2196,6 +2196,9 @@ socket_parse_timeout(_PyTime_t *timeout, PyObject *timeout_obj) { #ifdef MS_WINDOWS struct timeval tv; +#endif +#ifndef HAVE_POLL + _PyTime_t ms; #endif int overflow = 0; @@ -2214,11 +2217,11 @@ socket_parse_timeout(_PyTime_t *timeout, PyObject *timeout_obj) } #ifdef MS_WINDOWS - overflow = (_PyTime_AsTimeval(timeout, &tv, _PyTime_ROUND_CEILING) < 0); + overflow |= (_PyTime_AsTimeval(*timeout, &tv, _PyTime_ROUND_CEILING) < 0); #endif #ifndef HAVE_POLL - timeout = _PyTime_AsMilliseconds(timeout, _PyTime_ROUND_CEILING); - overflow = (timeout > INT_MAX); + ms = _PyTime_AsMilliseconds(*timeout, _PyTime_ROUND_CEILING); + overflow |= (ms > INT_MAX); #endif if (overflow) { PyErr_SetString(PyExc_OverflowError,