[Python-checkins] cpython: Issue #22117: Fix integer overflow check in socket_parse_timeout() on Windows

victor.stinner python-checkins at python.org
Tue Mar 31 16:40:19 CEST 2015


https://hg.python.org/cpython/rev/dbc92a254173
changeset:   95330:dbc92a254173
user:        Victor Stinner <victor.stinner at 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


More information about the Python-checkins mailing list