cpython: Issue #22117: Fix integer overflow check in socket_parse_timeout() on Windows

https://hg.python.org/cpython/rev/dbc92a254173 changeset: 95330:dbc92a254173 user: Victor Stinner <victor.stinner@gmail.com> date: Tue Mar 31 16:31:19 2015 +0200 summary: Issue #22117: Fix integer overflow check in socket_parse_timeout() on Windows files: Modules/socketmodule.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -2197,6 +2197,9 @@ #ifdef MS_WINDOWS struct timeval tv; #endif +#ifndef HAVE_POLL + _PyTime_t ms; +#endif int overflow = 0; if (timeout_obj == Py_None) { @@ -2214,11 +2217,11 @@ } #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, -- Repository URL: https://hg.python.org/cpython
participants (1)
-
victor.stinner