https://github.com/python/cpython/commit/884df116d79b05d9342e05e50484d61c684ecb8b commit: 884df116d79b05d9342e05e50484d61c684ecb8b branch: main author: Bogdan Romanyuk <65823030+wrongn...@users.noreply.github.com> committer: Eclips4 <kirill.ba...@mail.ru> date: 2025-04-15T18:41:52Z summary:
gh-114713: Handle case of an empty string passed to `zoneinfo.ZoneInfo` (#114731) Co-authored-by: Stan Ulbrych <89152624+stanfromirel...@users.noreply.github.com> Co-authored-by: Kirill Podoprigora <kirill.ba...@mail.ru> files: A Misc/NEWS.d/next/Library/2025-03-09-01-09-12.gh-issue-114713.lkq9vZ.rst M Lib/test/test_zoneinfo/test_zoneinfo.py M Lib/zoneinfo/_tzpath.py diff --git a/Lib/test/test_zoneinfo/test_zoneinfo.py b/Lib/test/test_zoneinfo/test_zoneinfo.py index 102a487b4cfa4f..fff6c0d865b441 100644 --- a/Lib/test/test_zoneinfo/test_zoneinfo.py +++ b/Lib/test/test_zoneinfo/test_zoneinfo.py @@ -236,6 +236,7 @@ def test_bad_keys_paths(self): "../zoneinfo/America/Los_Angeles", # Traverses above TZPATH "America/../America/Los_Angeles", # Not normalized "America/./Los_Angeles", + "", ] for bad_key in bad_keys: diff --git a/Lib/zoneinfo/_tzpath.py b/Lib/zoneinfo/_tzpath.py index 5db17bea045d8c..990a5c8b6a9372 100644 --- a/Lib/zoneinfo/_tzpath.py +++ b/Lib/zoneinfo/_tzpath.py @@ -83,6 +83,11 @@ def find_tzfile(key): def _validate_tzfile_path(path, _base=_TEST_PATH): + if not path: + raise ValueError( + "ZoneInfo key must not be an empty string" + ) + if os.path.isabs(path): raise ValueError( f"ZoneInfo keys may not be absolute paths, got: {path}" diff --git a/Misc/NEWS.d/next/Library/2025-03-09-01-09-12.gh-issue-114713.lkq9vZ.rst b/Misc/NEWS.d/next/Library/2025-03-09-01-09-12.gh-issue-114713.lkq9vZ.rst new file mode 100644 index 00000000000000..d30975a8a5115b --- /dev/null +++ b/Misc/NEWS.d/next/Library/2025-03-09-01-09-12.gh-issue-114713.lkq9vZ.rst @@ -0,0 +1 @@ +Handle case of an empty string passed to :class:`zoneinfo.ZoneInfo`. _______________________________________________ Python-checkins mailing list -- python-checkins@python.org To unsubscribe send an email to python-checkins-le...@python.org https://mail.python.org/mailman3/lists/python-checkins.python.org/ Member address: arch...@mail-archive.com