diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2024-08-11 23:48:50 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-11 23:48:50 (GMT) |
commit | 9cd03263100ddb1657826cc4a71470786cab3932 (patch) | |
tree | 1a1bbea5286dfe3e38be0efde432c7f044ad6ce0 /Lib/test | |
parent | 4534068f22f07a8ab9871bc16abf03c478ee2532 (diff) | |
download | cpython-9cd03263100ddb1657826cc4a71470786cab3932.zip cpython-9cd03263100ddb1657826cc4a71470786cab3932.tar.gz cpython-9cd03263100ddb1657826cc4a71470786cab3932.tar.bz2 |
gh-122905: Sanitize names in zipfile.Path. (#122906)
Ported from zipp 3.19.1; ref jaraco/zipp#119.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_zipfile/_path/test_path.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Lib/test/test_zipfile/_path/test_path.py b/Lib/test/test_zipfile/_path/test_path.py index 99842ff..4a31cae 100644 --- a/Lib/test/test_zipfile/_path/test_path.py +++ b/Lib/test/test_zipfile/_path/test_path.py @@ -577,3 +577,20 @@ class TestPath(unittest.TestCase): zipfile.Path(alpharep) with self.assertRaises(KeyError): alpharep.getinfo('does-not-exist') + + def test_malformed_paths(self): + """ + Path should handle malformed paths. + """ + data = io.BytesIO() + zf = zipfile.ZipFile(data, "w") + zf.writestr("/one-slash.txt", b"content") + zf.writestr("//two-slash.txt", b"content") + zf.writestr("../parent.txt", b"content") + zf.filename = '' + root = zipfile.Path(zf) + assert list(map(str, root.iterdir())) == [ + 'one-slash.txt', + 'two-slash.txt', + 'parent.txt', + ] |