Merged revisions 87919 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r87919 | alexander.belopolsky | 2011-01-10 20:21:25 -0500 (Mon, 10 Jan 2011) | 4 lines
Issue #1726687: time.mktime() will now correctly compute value one
second before epoch. Original patch by Peter Wang, reported by Martin
Blais.
........
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index 1ebee6f..61c1ccc 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -632,8 +632,11 @@
time_t tt;
if (!gettmarg(tup, &buf))
return NULL;
+ buf.tm_wday = -1; /* sentinel; original value ignored */
tt = mktime(&buf);
- if (tt == (time_t)(-1)) {
+ /* Return value of -1 does not necessarily mean an error, but tm_wday
+ * cannot remain set to -1 if mktime succedded. */
+ if (tt == (time_t)(-1) && buf.tm_wday == -1) {
PyErr_SetString(PyExc_OverflowError,
"mktime argument out of range");
return NULL;