From a3a3bfd01c3fc02b1dc5465ecb8047f90ce45f8f Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Tue, 15 Apr 2025 21:05:28 +0200 Subject: [PATCH] [3.13] gh-114713: Handle case of an empty string passed to `zoneinfo.ZoneInfo` (GH-114731) (#132563) gh-114713: Handle case of an empty string passed to `zoneinfo.ZoneInfo` (GH-114731) (cherry picked from commit 884df116d79b05d9342e05e50484d61c684ecb8b) Co-authored-by: Bogdan Romanyuk <65823030+wrongnull@users.noreply.github.com> Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Co-authored-by: Kirill Podoprigora --- Lib/test/test_zoneinfo/test_zoneinfo.py | 1 + Lib/zoneinfo/_tzpath.py | 5 +++++ .../Library/2025-03-09-01-09-12.gh-issue-114713.lkq9vZ.rst | 1 + 3 files changed, 7 insertions(+) create mode 100644 Misc/NEWS.d/next/Library/2025-03-09-01-09-12.gh-issue-114713.lkq9vZ.rst diff --git a/Lib/test/test_zoneinfo/test_zoneinfo.py b/Lib/test/test_zoneinfo/test_zoneinfo.py index 8bcd6d2e9951..e4eb4e1fe377 100644 --- a/Lib/test/test_zoneinfo/test_zoneinfo.py +++ b/Lib/test/test_zoneinfo/test_zoneinfo.py @@ -235,6 +235,7 @@ class ZoneInfoTest(TzPathUserMixin, ZoneInfoTestBase): "../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 5db17bea045d..990a5c8b6a93 100644 --- a/Lib/zoneinfo/_tzpath.py +++ b/Lib/zoneinfo/_tzpath.py @@ -83,6 +83,11 @@ _TEST_PATH = os.path.normpath(os.path.join("_", "_"))[:-1] 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 000000000000..d30975a8a511 --- /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`. -- 2.47.3