Issue #19748: On AIX, time.mktime() now raises an OverflowError for year
outsize range [1902; 2037].
This commit is contained in:
parent
24a882bb7b
commit
1ac42614e3
|
@ -228,7 +228,7 @@ class TimeTestCase(unittest.TestCase):
|
|||
self.assertEqual(time.ctime(t), 'Sun Sep 16 01:03:52 1973')
|
||||
t = time.mktime((2000, 1, 1, 0, 0, 0, 0, 0, -1))
|
||||
self.assertEqual(time.ctime(t), 'Sat Jan 1 00:00:00 2000')
|
||||
for year in [-100, 100, 1000, 2000, 10000]:
|
||||
for year in [-100, 100, 1000, 2000, 2050, 10000]:
|
||||
try:
|
||||
testval = time.mktime((year, 1, 10) + (0,)*6)
|
||||
except (ValueError, OverflowError):
|
||||
|
|
10
Misc/NEWS
10
Misc/NEWS
|
@ -2,6 +2,16 @@
|
|||
Python News
|
||||
+++++++++++
|
||||
|
||||
What's New in Python 3.4.1?
|
||||
===========================
|
||||
|
||||
Library
|
||||
-------
|
||||
|
||||
- Issue #19748: On AIX, time.mktime() now raises an OverflowError for year
|
||||
outsize range [1902; 2037].
|
||||
|
||||
|
||||
What's New in Python 3.4.0 release candidate 2?
|
||||
===============================================
|
||||
|
||||
|
|
|
@ -823,7 +823,18 @@ time_mktime(PyObject *self, PyObject *tup)
|
|||
time_t tt;
|
||||
if (!gettmarg(tup, &buf))
|
||||
return NULL;
|
||||
#ifdef _AIX
|
||||
/* year < 1902 or year > 2037 */
|
||||
if (buf.tm_year < 2 || buf.tm_year > 137) {
|
||||
/* Issue #19748: On AIX, mktime() doesn't report overflow error for
|
||||
* timestamp < -2^31 or timestamp > 2**31-1. */
|
||||
PyErr_SetString(PyExc_OverflowError,
|
||||
"mktime argument out of range");
|
||||
return NULL;
|
||||
}
|
||||
#else
|
||||
buf.tm_wday = -1; /* sentinel; original value ignored */
|
||||
#endif
|
||||
tt = mktime(&buf);
|
||||
/* Return value of -1 does not necessarily mean an error, but tm_wday
|
||||
* cannot remain set to -1 if mktime succeeded. */
|
||||
|
|
Loading…
Reference in New Issue