[Python-checkins] cpython: Fix _PyTime_AsTimevalStruct_impl() on OpenBSD

victor.stinner python-checkins at python.org
Thu Oct 1 08:44:41 CEST 2015


https://hg.python.org/cpython/rev/33a5ab6c578a
changeset:   98445:33a5ab6c578a
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Thu Oct 01 08:44:03 2015 +0200
summary:
  Fix _PyTime_AsTimevalStruct_impl() on OpenBSD

On the x86 OpenBSD 5.8 buildbot, the integer overflow check is ignored. Copy
the tv_sec variable into a Py_time_t variable instead of "simply" casting it to
Py_time_t, to fix the integer overflow check.

files:
  Python/pytime.c |  5 +++--
  1 files changed, 3 insertions(+), 2 deletions(-)


diff --git a/Python/pytime.c b/Python/pytime.c
--- a/Python/pytime.c
+++ b/Python/pytime.c
@@ -454,7 +454,7 @@
 _PyTime_AsTimevalStruct_impl(_PyTime_t t, struct timeval *tv,
                              _PyTime_round_t round, int raise)
 {
-    _PyTime_t secs;
+    _PyTime_t secs, secs2;
     int us;
     int res;
 
@@ -467,7 +467,8 @@
 #endif
     tv->tv_usec = us;
 
-    if (res < 0 || (_PyTime_t)tv->tv_sec != secs) {
+    secs2 = (_PyTime_t)tv->tv_sec;
+    if (res < 0 || secs2 != secs) {
         if (raise)
             error_time_t_overflow();
         return -1;

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list