diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2008-09-05 23:43:02 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2008-09-05 23:43:02 (GMT) |
commit | 9e4fdf446d284c579190fe57ea9d774357438ffc (patch) | |
tree | 7ee39d5735d664b290e65dddcec89cfb8856c5c7 /Lib/zipfile.py | |
parent | 791dc2f32c3fb707319d0c8d93d6cde6175d1e01 (diff) | |
download | cpython-9e4fdf446d284c579190fe57ea9d774357438ffc.zip cpython-9e4fdf446d284c579190fe57ea9d774357438ffc.tar.gz cpython-9e4fdf446d284c579190fe57ea9d774357438ffc.tar.bz2 |
Merged revisions 66240 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r66240 | antoine.pitrou | 2008-09-06 01:30:23 +0200 (sam., 06 sept. 2008) | 5 lines
Issue #3535: zipfile couldn't read some zip files larger than 2GB.
Reviewed by Amaury Forgeot d'Arc.
........
Diffstat (limited to 'Lib/zipfile.py')
-rw-r--r-- | Lib/zipfile.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Lib/zipfile.py b/Lib/zipfile.py index 9e96e93..46ec6ef 100644 --- a/Lib/zipfile.py +++ b/Lib/zipfile.py @@ -165,6 +165,7 @@ def _EndRecData64(fpin, offset, endrec): return endrec # Update the original endrec using data from the ZIP64 record + endrec[_ECD_SIGNATURE] = sig endrec[_ECD_DISK_NUMBER] = disk_num endrec[_ECD_DISK_START] = disk_dir endrec[_ECD_ENTRIES_THIS_DISK] = dircount @@ -733,9 +734,8 @@ class ZipFile: # "concat" is zero, unless zip was concatenated to another file concat = endrec[_ECD_LOCATION] - size_cd - offset_cd - if endrec[_ECD_LOCATION] > ZIP64_LIMIT: - # If the offset of the "End of Central Dir" record requires Zip64 - # extension structures, account for them + if endrec[_ECD_SIGNATURE] == stringEndArchive64: + # If Zip64 extension structures are present, account for them concat -= (sizeEndCentDir64 + sizeEndCentDir64Locator) if self.debug > 2: |