Enhance _PyTime_AsTimespec()

Ensure that the tv_nsec field is set, even if the function fails
with an overflow.
This commit is contained in:
Victor Stinner 2015-09-03 16:25:45 +02:00
parent fbb215cb24
commit 29ee6745af
1 changed files with 3 additions and 3 deletions

View File

@ -479,13 +479,13 @@ _PyTime_AsTimespec(_PyTime_t t, struct timespec *ts)
secs -= 1; secs -= 1;
} }
ts->tv_sec = (time_t)secs; ts->tv_sec = (time_t)secs;
assert(0 <= nsec && nsec < SEC_TO_NS);
ts->tv_nsec = nsec;
if ((_PyTime_t)ts->tv_sec != secs) { if ((_PyTime_t)ts->tv_sec != secs) {
_PyTime_overflow(); _PyTime_overflow();
return -1; return -1;
} }
ts->tv_nsec = nsec;
assert(0 <= ts->tv_nsec && ts->tv_nsec < SEC_TO_NS);
return 0; return 0;
} }
#endif #endif