Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/python-nbxmpp.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nbxmpp/modules/date_and_time.py5
-rw-r--r--test/unit/test_datetime_parsing.py4
2 files changed, 9 insertions, 0 deletions
diff --git a/nbxmpp/modules/date_and_time.py b/nbxmpp/modules/date_and_time.py
index d024bdd..5ff9bb7 100644
--- a/nbxmpp/modules/date_and_time.py
+++ b/nbxmpp/modules/date_and_time.py
@@ -160,6 +160,11 @@ def parse_datetime(
except ValueError:
return None
+ if not 1 < date_time.year < 9999:
+ # Raise/Reduce MIN/MAX year so converting to different
+ # timezones cannot get out of range
+ return None
+
if check_utc:
if convert != 'utc':
raise ValueError(
diff --git a/test/unit/test_datetime_parsing.py b/test/unit/test_datetime_parsing.py
index 8970611..68de6d1 100644
--- a/test/unit/test_datetime_parsing.py
+++ b/test/unit/test_datetime_parsing.py
@@ -37,6 +37,10 @@ class TestDateTime(unittest.TestCase):
'2017-11-05T07:41:20+05:00': datetime(2017, 11, 5, 2, 41, 20, 0, timezone.utc),
'2017-11-05T01:41:20+00:00': datetime(2017, 11, 5, 1, 41, 20, 0, timezone.utc),
'2017-11-05T01:41:20Z': datetime(2017, 11, 5, 1, 41, 20, 0, timezone.utc),
+ '0002-11-05T01:41:20Z': datetime(2, 11, 5, 1, 41, 20, 0, timezone.utc),
+ '9998-11-05T01:41:20Z': datetime(9998, 11, 5, 1, 41, 20, 0, timezone.utc),
+ '0001-11-05T01:41:20Z': None,
+ '9999-11-05T01:41:20Z': None,
}
for time_string, expected_value in strings.items():