mirror of
https://github.com/python/cpython.git
synced 2026-06-28 03:41:13 +00:00
[3.13] gh-152212: Reject a POSIX TZ footer with a missing std offset in pure-Python zoneinfo (GH-152213) (#152377)
(cherry picked from commit 93454fe0da)
Co-authored-by: tonghuaroot (童话) <tonghuaroot@gmail.com>
This commit is contained in:
parent
8d8be61a28
commit
8744d058ea
3 changed files with 10 additions and 1 deletions
|
|
@ -1142,6 +1142,11 @@ def test_extreme_tzstr(self):
|
|||
def test_invalid_tzstr(self):
|
||||
invalid_tzstrs = [
|
||||
"PST8PDT", # DST but no transition specified
|
||||
# gh-152212: the std offset is required (POSIX TZ grammar)
|
||||
"AAA",
|
||||
"A",
|
||||
"AA",
|
||||
"B",
|
||||
"+11", # Unquoted alphanumeric
|
||||
"GMT,M3.2.0/2,M11.1.0/3", # Transition rule but no DST
|
||||
"GMT0+11,M3.2.0/2,M11.1.0/3", # Unquoted alphanumeric in DST
|
||||
|
|
|
|||
|
|
@ -672,7 +672,8 @@ def _parse_tz_str(tz_str):
|
|||
except ValueError as e:
|
||||
raise ValueError(f"Invalid STD offset in {tz_str}") from e
|
||||
else:
|
||||
std_offset = 0
|
||||
# The STD offset is required
|
||||
raise ValueError(f"Invalid STD offset in {tz_str}")
|
||||
|
||||
if dst_abbr is not None:
|
||||
if dst_offset := m.group("dstoff"):
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
Fix the pure-Python :mod:`zoneinfo` parser accepting a POSIX TZ string with a
|
||||
``std`` abbreviation but no offset. This is invalid per POSIX and now
|
||||
raises :exc:`ValueError`, matching the C accelerator. Patch by tonghuaroot.
|
||||
Loading…
Add table
Add a link
Reference in a new issue