New submission from Kyle Altendorf <s...@fstab.net>:
This was first found over in Twisted tests. We probably aren't too terribly worried about it but I wanted to report here anyways. https://twistedmatrix.com/trac/ticket/9525 Both 3.6 and 3.7 write the same file (sha at the end) based on the script in the first snippet. 3.6 can read both files, 3.7 can't read either. ---- altendky@lt:~/twisted$ cat ../z.py import sys import zipfile print(sys.version) fn = sys.argv[1] print(fn) with zipfile.ZipFile(fn, 'w') as zf: zi = zipfile.ZipInfo("0") zi.extra = b"hello, extra" zf.writestr(zi, b"the real data") zipfile.ZipFile(fn) ---- altendky@lt:~/twisted$ venv36/bin/python ../z.py 36.zip 3.6.6 (default, Jul 24 2018, 16:23:12) [GCC 6.3.0 20170516] 36.zip ---- altendky@lt:~/twisted$ venv37/bin/python ../z.py 37.zip 3.7.0 (default, Jul 7 2018, 15:49:24) [GCC 6.3.0 20170516] 37.zip Traceback (most recent call last): File "../z.py", line 14, in <module> zipfile.ZipFile(fn) File "/home/altendky/.pyenv/versions/3.7.0/lib/python3.7/zipfile.py", line 1200, in __init__ self._RealGetContents() File "/home/altendky/.pyenv/versions/3.7.0/lib/python3.7/zipfile.py", line 1323, in _RealGetContents x._decodeExtra() File "/home/altendky/.pyenv/versions/3.7.0/lib/python3.7/zipfile.py", line 440, in _decodeExtra raise BadZipFile("Corrupt extra field %04x (size=%d)" % (tp, ln)) zipfile.BadZipFile: Corrupt extra field 6568 (size=27756) ---- altendky@lt:~/twisted$ cat ../z.py import sys import zipfile print(sys.version) fn = sys.argv[1] print(fn) #with zipfile.ZipFile(fn, 'w') as zf: # zi = zipfile.ZipInfo("0") # zi.extra = b"hello, extra" # zf.writestr(zi, b"the real data") zipfile.ZipFile(fn) ---- altendky@lt:~/twisted$ venv36/bin/python ../z.py 37.zip 3.6.6 (default, Jul 24 2018, 16:23:12) [GCC 6.3.0 20170516] 37.zip ---- altendky@lt:~/twisted$ venv37/bin/python ../z.py 36.zip 3.7.0 (default, Jul 7 2018, 15:49:24) [GCC 6.3.0 20170516] 36.zip Traceback (most recent call last): File "../z.py", line 14, in <module> zipfile.ZipFile(fn) File "/home/altendky/.pyenv/versions/3.7.0/lib/python3.7/zipfile.py", line 1200, in __init__ self._RealGetContents() File "/home/altendky/.pyenv/versions/3.7.0/lib/python3.7/zipfile.py", line 1323, in _RealGetContents x._decodeExtra() File "/home/altendky/.pyenv/versions/3.7.0/lib/python3.7/zipfile.py", line 440, in _decodeExtra raise BadZipFile("Corrupt extra field %04x (size=%d)" % (tp, ln)) zipfile.BadZipFile: Corrupt extra field 6568 (size=27756) ---- altendky@lt:~/twisted$ sha256sum 36.zip 0f54bd6ab84facfeefc2c38f12c30eb84101b3be3d91f8826f6fa36e73b86cb6 36.zip ---- altendky@lt:~/twisted$ sha256sum 37.zip 0f54bd6ab84facfeefc2c38f12c30eb84101b3be3d91f8826f6fa36e73b86cb6 37.zip ---------- components: Library (Lib) messages: 324743 nosy: altendky priority: normal severity: normal status: open title: Unable to read zip file with extra type: crash versions: Python 3.7 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue34606> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com