]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.14] gh-72680: Fix false positives when using zipfile.is_zipfile() (GH-134250)...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Wed, 21 May 2025 01:58:48 +0000 (03:58 +0200)
committerGitHub <noreply@github.com>
Wed, 21 May 2025 01:58:48 +0000 (01:58 +0000)
commitaf428a3894745652d48ad0d62c74ba8d2f5b451a
treef2f85d1810e0f96ec7bf549ca877d49896dcb8d7
parente379a71811d370731f4dc814e5628d14952713d5
[3.14] gh-72680: Fix false positives when using zipfile.is_zipfile() (GH-134250) (#134401)

gh-72680: Fix false positives when using zipfile.is_zipfile() (GH-134250)

bpo-28494: Improve zipfile.is_zipfile reliability

The zipfile.is_zipfile function would only search for the EndOfZipfile
section header. This failed to correctly identify non-zipfiles that
contained this header. Now the zipfile.is_zipfile function verifies
the first central directory entry.

Changes:
* Extended zipfile.is_zipfile to verify zipfile catalog
* Added tests to validate failure of binary non-zipfiles
* Reuse 'concat' handling for is_zipfile
(cherry picked from commit 1298511b41ec0f9be925c12f3830e94fe8f7e7dc)

Co-authored-by: Tim Hatch <timhatch@netflix.com>
Co-authored-by: John Jolly <john.jolly@gmail.com>
Lib/test/test_zipfile/test_core.py
Lib/zipfile/__init__.py
Misc/NEWS.d/next/Library/2017-12-30-18-21-00.bpo-28494.Dt_Wks.rst [new file with mode: 0644]