diff options
author | Carey Metcalfe <carey@cmetcalfe.ca> | 2023-05-11 07:25:16 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-11 07:25:16 (GMT) |
commit | 4abfe6a14b5be5decbaa3142d9e2549cf2d86c34 (patch) | |
tree | 8935ca48a59633aaa5e4a29fae8d7eca949e1901 | |
parent | fcd5fb49b1d71165f3c503c3d2e74a082ddb2f21 (diff) | |
download | cpython-4abfe6a14b5be5decbaa3142d9e2549cf2d86c34.zip cpython-4abfe6a14b5be5decbaa3142d9e2549cf2d86c34.tar.gz cpython-4abfe6a14b5be5decbaa3142d9e2549cf2d86c34.tar.bz2 |
GH-92184: Convert os.altsep to '/' in filenames when creating ZipInfo objects (#92185)
This causes the zipfile module to also consider the character defined by
`os.altsep` (if there is one) to be a path separator and convert it to a
forward slash, as defined by the zip specification.
A logical no-op on all known platforms today as os.altsep is currently only set to a meaningful value on Windows (where it is "/").
-rw-r--r-- | Lib/zipfile/__init__.py | 2 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2022-05-02-16-21-05.gh-issue-92184.hneGVW.rst | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/Lib/zipfile/__init__.py b/Lib/zipfile/__init__.py index 95c0479..116b939 100644 --- a/Lib/zipfile/__init__.py +++ b/Lib/zipfile/__init__.py @@ -352,6 +352,8 @@ def _sanitize_filename(filename): # ZIP format specification. if os.sep != "/" and os.sep in filename: filename = filename.replace(os.sep, "/") + if os.altsep and os.altsep != "/" and os.altsep in filename: + filename = filename.replace(os.altsep, "/") return filename diff --git a/Misc/NEWS.d/next/Library/2022-05-02-16-21-05.gh-issue-92184.hneGVW.rst b/Misc/NEWS.d/next/Library/2022-05-02-16-21-05.gh-issue-92184.hneGVW.rst new file mode 100644 index 0000000..65dbdc9 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-05-02-16-21-05.gh-issue-92184.hneGVW.rst @@ -0,0 +1,3 @@ +When creating zip files using :mod:`zipfile`, ``os.altsep``, if not ``None``, +will always be treated as a path separator even when it is not ``/``. +Patch by Carey Metcalfe. |