diff --git a/Lib/test/test_zipfile/test_core.py b/Lib/test/test_zipfile/test_core.py index d0ae7ce787bee32..a0a45aba537e400 100644 --- a/Lib/test/test_zipfile/test_core.py +++ b/Lib/test/test_zipfile/test_core.py @@ -1136,6 +1136,54 @@ def test_bad_zip64_end_of_central_dir(self): zipfile.ZipFile(io.BytesIO(zipdata)) self.assertFalse(zipfile.is_zipfile(io.BytesIO(zipdata))) + def test_multi_disk_zip64_end_of_central_dir(self): + zipdata = self.make_zip64_file() + eocd64 = zipdata.rfind(zipfile.stringEndArchive64) + disk_fields_offset = eocd64 + struct.calcsize('<4sQ2H') + + for disk_number, disk_start in ((1, 0), (0, 1), (1, 1)): + corrupted = bytearray(zipdata) + struct.pack_into( + '