diff --git a/Lib/http/cookiejar.py b/Lib/http/cookiejar.py index ac5e667dba77..bd367f94cac6 100644 --- a/Lib/http/cookiejar.py +++ b/Lib/http/cookiejar.py @@ -143,6 +143,10 @@ def offset_from_tz_string(tz): return offset def _str2time(day, mon, yr, hr, min, sec, tz): + yr = int(yr) + if yr > datetime.MAXYEAR: + return None + # translate month name to number # month numbers start with 1 (January) try: @@ -163,7 +167,6 @@ def _str2time(day, mon, yr, hr, min, sec, tz): if min is None: min = 0 if sec is None: sec = 0 - yr = int(yr) day = int(day) hr = int(hr) min = int(min) diff --git a/Lib/test/test_http_cookiejar.py b/Lib/test/test_http_cookiejar.py index 50260ffe5cef..ea3c827fb7e3 100644 --- a/Lib/test/test_http_cookiejar.py +++ b/Lib/test/test_http_cookiejar.py @@ -91,6 +91,10 @@ def test_http2time_garbage(self): '01-01-1980 25:00:00', '01-01-1980 00:61:00', '01-01-1980 00:00:62', + '08-Oct-3697739', + '08-01-3697739', + '09 Feb 19942632 22:23:32 GMT', + 'Wed, 09 Feb 1994834 22:23:32 GMT', ]: self.assertIsNone(http2time(test), "http2time(%s) is not None\n" diff --git a/Misc/NEWS b/Misc/NEWS index b7a26176812d..58ee5a478bbe 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -91,6 +91,9 @@ Core and Builtins Library ------- +- Issue #16181: cookiejar.http2time() now returns None if year is higher than + datetime.MAXYEAR. + - Issue #26513: Fixes platform module detection of Windows Server - Issue #23718: Fixed parsing time in week 0 before Jan 1. Original patch by