From: Victor Stinner Date: Wed, 5 Nov 2025 20:16:37 +0000 (+0100) Subject: gh-83714: Fix stat_nanosecond_timestamp() for 32-bit time_t (#141069) X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=986bb0a1a2bd290f5da347e455b23468aa3f62f0;p=thirdparty%2FPython%2Fcpython.git gh-83714: Fix stat_nanosecond_timestamp() for 32-bit time_t (#141069) --- diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index ecda75ec6ab7..6390f1fc5fe2 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -2634,13 +2634,14 @@ _posix_free(void *module) static PyObject * stat_nanosecond_timestamp(_posixstate *state, time_t sec, unsigned long nsec) { -#if SIZEOF_LONG >= 8 +#if SIZEOF_TIME_T == 4 + return PyLong_FromLongLong(sec * SEC_TO_NS + nsec); +#else /* 1677-09-21 00:12:44 to 2262-04-11 23:47:15 UTC inclusive */ if ((LLONG_MIN/SEC_TO_NS) <= sec && sec <= (LLONG_MAX/SEC_TO_NS - 1)) { return PyLong_FromLongLong(sec * SEC_TO_NS + nsec); } else -#endif { PyObject *ns_total = NULL; PyObject *s_in_ns = NULL; @@ -2663,6 +2664,7 @@ stat_nanosecond_timestamp(_posixstate *state, time_t sec, unsigned long nsec) Py_XDECREF(s_in_ns); return ns_total; } +#endif } static int