bpo-34472: Add data descriptor signature to zipfile (GH-8871) · python/cpython@4ba3b50 (original) (raw)
`@@ -159,6 +159,8 @@ class LargeZipFile(Exception):
`
159
159
`_CD64_DIRECTORY_SIZE = 8
`
160
160
`_CD64_OFFSET_START_CENTDIR = 9
`
161
161
``
``
162
`+
_DD_SIGNATURE = 0x08074b50
`
``
163
+
162
164
`_EXTRA_FIELD_STRUCT = struct.Struct('<HH')
`
163
165
``
164
166
`def _strip_extra(extra, xids):
`
`@@ -1118,8 +1120,8 @@ def close(self):
`
1118
1120
`# Write updated header info
`
1119
1121
`if self._zinfo.flag_bits & 0x08:
`
1120
1122
`# Write CRC and file sizes after the file data
`
1121
``
`-
fmt = '<LQQ' if self._zip64 else '<LLL'
`
1122
``
`-
self._fileobj.write(struct.pack(fmt, self._zinfo.CRC,
`
``
1123
`+
fmt = '<LLQQ' if self._zip64 else '<LLLL'
`
``
1124
`+
self._fileobj.write(struct.pack(fmt, _DD_SIGNATURE, self._zinfo.CRC,
`
1123
1125
`self._zinfo.compress_size, self._zinfo.file_size))
`
1124
1126
`self._zipfile.start_dir = self._fileobj.tell()
`
1125
1127
`else:
`