[Python-checkins] r66240 - in python/trunk: Lib/zipfile.py Misc/NEWS

antoine.pitrou python-checkins at python.org
Sat Sep 6 01:30:24 CEST 2008


Author: antoine.pitrou
Date: Sat Sep  6 01:30:23 2008
New Revision: 66240

Log:
Issue #3535: zipfile couldn't read some zip files larger than 2GB.

Reviewed by Amaury Forgeot d'Arc.



Modified:
   python/trunk/Lib/zipfile.py
   python/trunk/Misc/NEWS

Modified: python/trunk/Lib/zipfile.py
==============================================================================
--- python/trunk/Lib/zipfile.py	(original)
+++ python/trunk/Lib/zipfile.py	Sat Sep  6 01:30:23 2008
@@ -163,6 +163,7 @@
         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
@@ -735,9 +736,8 @@
 
         # "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:

Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS	(original)
+++ python/trunk/Misc/NEWS	Sat Sep  6 01:30:23 2008
@@ -56,7 +56,9 @@
 Library
 -------
 
-- Issue 3776: Deprecate the bsddb package for removal in 3.0.
+- 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.


More information about the Python-checkins mailing list