mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
[3.11] gh-117084: Fix ZIP file extraction for directory entry names with backslashes on Windows (GH-117129) (GH-117162) (GH-117165)
(cherry picked from commitf3fee231d3
) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> (cherry picked from commit567ab3bd15
)
This commit is contained in:
parent
da5efeba93
commit
0d82047645
4 changed files with 27 additions and 1 deletions
|
@ -559,7 +559,15 @@ class ZipInfo (object):
|
|||
|
||||
def is_dir(self):
|
||||
"""Return True if this archive member is a directory."""
|
||||
return self.filename[-1] == '/'
|
||||
if self.filename.endswith('/'):
|
||||
return True
|
||||
# The ZIP format specification requires to use forward slashes
|
||||
# as the directory separator, but in practice some ZIP files
|
||||
# created on Windows can use backward slashes. For compatibility
|
||||
# with the extraction code which already handles this:
|
||||
if os.path.altsep:
|
||||
return self.filename.endswith((os.path.sep, os.path.altsep))
|
||||
return False
|
||||
|
||||
|
||||
# ZIP encryption uses the CRC32 one-byte primitive for scrambling some
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue