mirror of
https://github.com/python/cpython.git
synced 2026-01-06 07:22:09 +00:00
[3.13] Add explanation comments for tests for overlapped ZIP entries (GH-137152) (GH-142311)
(cherry picked from commit 100c726d98)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
parent
b44cd567fc
commit
7147ef4337
1 changed files with 17 additions and 0 deletions
|
|
@ -2428,6 +2428,10 @@ def test_decompress_without_3rd_party_library(self):
|
|||
|
||||
@requires_zlib()
|
||||
def test_full_overlap_different_names(self):
|
||||
# The ZIP file contains two central directory entries with
|
||||
# different names which refer to the same local header.
|
||||
# The name of the local header matches the name of the first
|
||||
# central directory entry.
|
||||
data = (
|
||||
b'PK\x03\x04\x14\x00\x00\x00\x08\x00\xa0lH\x05\xe2\x1e'
|
||||
b'8\xbb\x10\x00\x00\x00\t\x04\x00\x00\x01\x00\x00\x00b\xed'
|
||||
|
|
@ -2457,6 +2461,10 @@ def test_full_overlap_different_names(self):
|
|||
|
||||
@requires_zlib()
|
||||
def test_full_overlap_different_names2(self):
|
||||
# The ZIP file contains two central directory entries with
|
||||
# different names which refer to the same local header.
|
||||
# The name of the local header matches the name of the second
|
||||
# central directory entry.
|
||||
data = (
|
||||
b'PK\x03\x04\x14\x00\x00\x00\x08\x00\xa0lH\x05\xe2\x1e'
|
||||
b'8\xbb\x10\x00\x00\x00\t\x04\x00\x00\x01\x00\x00\x00a\xed'
|
||||
|
|
@ -2488,6 +2496,8 @@ def test_full_overlap_different_names2(self):
|
|||
|
||||
@requires_zlib()
|
||||
def test_full_overlap_same_name(self):
|
||||
# The ZIP file contains two central directory entries with
|
||||
# the same name which refer to the same local header.
|
||||
data = (
|
||||
b'PK\x03\x04\x14\x00\x00\x00\x08\x00\xa0lH\x05\xe2\x1e'
|
||||
b'8\xbb\x10\x00\x00\x00\t\x04\x00\x00\x01\x00\x00\x00a\xed'
|
||||
|
|
@ -2520,6 +2530,8 @@ def test_full_overlap_same_name(self):
|
|||
|
||||
@requires_zlib()
|
||||
def test_quoted_overlap(self):
|
||||
# The ZIP file contains two files. The second local header
|
||||
# is contained in the range of the first file.
|
||||
data = (
|
||||
b'PK\x03\x04\x14\x00\x00\x00\x08\x00\xa0lH\x05Y\xfc'
|
||||
b'8\x044\x00\x00\x00(\x04\x00\x00\x01\x00\x00\x00a\x00'
|
||||
|
|
@ -2551,6 +2563,7 @@ def test_quoted_overlap(self):
|
|||
|
||||
@requires_zlib()
|
||||
def test_overlap_with_central_dir(self):
|
||||
# The local header offset is equal to the central directory offset.
|
||||
data = (
|
||||
b'PK\x01\x02\x14\x03\x14\x00\x00\x00\x08\x00G_|Z'
|
||||
b'\xe2\x1e8\xbb\x0b\x00\x00\x00\t\x04\x00\x00\x01\x00\x00\x00'
|
||||
|
|
@ -2565,11 +2578,15 @@ def test_overlap_with_central_dir(self):
|
|||
self.assertEqual(zi.header_offset, 0)
|
||||
self.assertEqual(zi.compress_size, 11)
|
||||
self.assertEqual(zi.file_size, 1033)
|
||||
# Found central directory signature PK\x01\x02 instead of
|
||||
# local header signature PK\x03\x04.
|
||||
with self.assertRaisesRegex(zipfile.BadZipFile, 'Bad magic number'):
|
||||
zipf.read('a')
|
||||
|
||||
@requires_zlib()
|
||||
def test_overlap_with_archive_comment(self):
|
||||
# The local header is written after the central directory,
|
||||
# in the archive comment.
|
||||
data = (
|
||||
b'PK\x01\x02\x14\x03\x14\x00\x00\x00\x08\x00G_|Z'
|
||||
b'\xe2\x1e8\xbb\x0b\x00\x00\x00\t\x04\x00\x00\x01\x00\x00\x00'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue