]> granicus.if.org Git - python/commitdiff
Merged revisions 66240 via svnmerge from
authorAntoine Pitrou <solipsis@pitrou.net>
Fri, 5 Sep 2008 23:43:02 +0000 (23:43 +0000)
committerAntoine Pitrou <solipsis@pitrou.net>
Fri, 5 Sep 2008 23:43:02 +0000 (23:43 +0000)
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.
........

Lib/zipfile.py
Misc/NEWS

index 9e96e934ec10193ccdfd61c3bde3d9c9ace872bb..46ec6ef065e56668211e787c2dbdd7ae3a022b6c 100644 (file)
@@ -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:
index 8cc1af0ac8850034b90c1aca59143ace0d392bf1..bc6ede7a6be270cc2ea03ab64c5523862688e6d4 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -86,6 +86,13 @@ C API
 Library
 -------
 
+- Issue #3535: zipfile couldn't read some zip files larger than 2GB.
+
+- Issue #3776: Deprecate the bsddb package for removal in 3.0.
+
+- Issue #3762: platform.architecture() fails if python is lanched via
+  its symbolic link.
+
 - Issue #3660: fix a memory leak in the C accelerator of the pickle module.
 
 - Issue #3160: the "bdist_wininst" distutils command didn't work.