https://github.com/python/cpython/commit/986bb0a1a2bd290f5da347e455b23468aa3f62f0
commit: 986bb0a1a2bd290f5da347e455b23468aa3f62f0
branch: main
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
date: 2025-11-05T21:16:37+01:00
summary:

gh-83714: Fix stat_nanosecond_timestamp() for 32-bit time_t (#141069)

files:
M Modules/posixmodule.c

diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index ecda75ec6ab775..6390f1fc5fe24f 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

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to