summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/datetimetester.py2
-rw-r--r--Misc/ACKS1
-rw-r--r--Misc/NEWS.d/next/Library/2024-05-21-19-10-30.gh-issue-115225.eRmfJH.rst1
-rw-r--r--Modules/_datetimemodule.c3
4 files changed, 7 insertions, 0 deletions
diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py
index 535b17d..3759504 100644
--- a/Lib/test/datetimetester.py
+++ b/Lib/test/datetimetester.py
@@ -4412,6 +4412,8 @@ class TestTimeTZ(TestTime, TZInfoBase, unittest.TestCase):
'12:30:45.123456-', # Extra at end of microsecond time
'12:30:45.123456+', # Extra at end of microsecond time
'12:30:45.123456+12:00:30a', # Extra at end of full time
+ '12.5', # Decimal mark at end of hour
+ '12:30,5', # Decimal mark at end of minute
]
for bad_str in bad_strs:
diff --git a/Misc/ACKS b/Misc/ACKS
index 2e7e124..af92d81 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -315,6 +315,7 @@ Greg Chapman
Mitch Chapman
Matt Chaput
William Chargin
+Ben Chatterton
Yogesh Chaudhari
Gautam Chaudhuri
David Chaum
diff --git a/Misc/NEWS.d/next/Library/2024-05-21-19-10-30.gh-issue-115225.eRmfJH.rst b/Misc/NEWS.d/next/Library/2024-05-21-19-10-30.gh-issue-115225.eRmfJH.rst
new file mode 100644
index 0000000..2b65eaa
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2024-05-21-19-10-30.gh-issue-115225.eRmfJH.rst
@@ -0,0 +1 @@
+Raise error on certain technically valid but pathological ISO 8601 strings passed to :meth:`datetime.time.fromisoformat` that were previously parsed incorrectly.
diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c
index d6fa273..bea6e94 100644
--- a/Modules/_datetimemodule.c
+++ b/Modules/_datetimemodule.c
@@ -1020,6 +1020,9 @@ parse_hh_mm_ss_ff(const char *tstr, const char *tstr_end, int *hour,
continue;
}
else if (c == '.' || c == ',') {
+ if (i < 2) {
+ return -3; // Decimal mark on hour or minute
+ }
break;
} else if (!has_separator) {
--p;