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:

`