Kaydet (Commit) 93a59653 authored tarafından R. David Murray's avatar R. David Murray

Merged revisions 74246 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r74246 | amaury.forgeotdarc | 2009-07-28 18:18:57 -0400 (Tue, 28 Jul 2009) | 10 lines

  Merged revisions 74245 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r74245 | amaury.forgeotdarc | 2009-07-29 00:15:30 +0200 (mer., 29 juil. 2009) | 3 lines

    #6511: ZipFile will now raise BadZipfile when opening an empty or tiny file,
    like it does for larger invalid files.
  ........
................
üst 875e1e7b
...@@ -688,6 +688,16 @@ class OtherTests(unittest.TestCase): ...@@ -688,6 +688,16 @@ class OtherTests(unittest.TestCase):
# quickly. # quickly.
self.assertRaises(IOError, zipfile.ZipFile, TESTFN) self.assertRaises(IOError, zipfile.ZipFile, TESTFN)
def test_empty_file_raises_BadZipFile(self):
f = open(TESTFN, 'w')
f.close()
self.assertRaises(zipfile.BadZipfile, zipfile.ZipFile, TESTFN)
f = open(TESTFN, 'w')
f.write("short file")
f.close()
self.assertRaises(zipfile.BadZipfile, zipfile.ZipFile, TESTFN)
def testClosedZipRaisesRuntimeError(self): def testClosedZipRaisesRuntimeError(self):
# Verify that testzip() doesn't swallow inappropriate exceptions. # Verify that testzip() doesn't swallow inappropriate exceptions.
data = io.BytesIO() data = io.BytesIO()
......
...@@ -200,7 +200,10 @@ def _EndRecData(fpin): ...@@ -200,7 +200,10 @@ def _EndRecData(fpin):
# Check to see if this is ZIP file with no archive comment (the # Check to see if this is ZIP file with no archive comment (the
# "end of central directory" structure should be the last item in the # "end of central directory" structure should be the last item in the
# file if this is the case). # file if this is the case).
fpin.seek(-sizeEndCentDir, 2) try:
fpin.seek(-sizeEndCentDir, 2)
except IOError:
return None
data = fpin.read() data = fpin.read()
if data[0:4] == stringEndArchive and data[-2:] == b"\000\000": if data[0:4] == stringEndArchive and data[-2:] == b"\000\000":
# the signature is correct and there's no comment, unpack structure # the signature is correct and there's no comment, unpack structure
......
...@@ -61,6 +61,9 @@ Core and Builtins ...@@ -61,6 +61,9 @@ Core and Builtins
Library Library
------- -------
- Issue #6511: ZipFile now raises BadZipfile (instead of an IOError) when
opening an empty or very small file.
- Issue #7556: Make sure Distutils' msvc9compile reads and writes the - Issue #7556: Make sure Distutils' msvc9compile reads and writes the
MSVC XML Manifest file in text mode so string patterns can be used MSVC XML Manifest file in text mode so string patterns can be used
in regular expressions. in regular expressions.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment