]> granicus.if.org Git - python/commitdiff
Try to fix _PyTime_AsTimevalStruct_impl() on OpenBSD
authorVictor Stinner <victor.stinner@gmail.com>
Tue, 29 Sep 2015 11:41:46 +0000 (13:41 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Tue, 29 Sep 2015 11:41:46 +0000 (13:41 +0200)
It looks like the check for integer overflow doesn't work on x86 OpenBSD 5.8.

Python/pytime.c

index 9889a3b53b0f90fd766d39506fb7a52ae44cf1ed..53611b1ec15fd4e205262c10b0e2f59281b4773c 100644 (file)
@@ -454,7 +454,7 @@ static int
 _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 @@ _PyTime_AsTimevalStruct_impl(_PyTime_t t, struct timeval *tv,
 #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;