-
Type: Bug
-
Status: Resolved
-
Priority: Minor
-
Resolution: Fixed
-
Affects Version/s: 10.10
-
Fix Version/s: 10.10-HF56, 2021.13
-
Component/s: Core IO
-
Release Notes Summary:The extra field setting can now be disabled when doing Nuxeo IO ZIP export.
-
Tags:
-
Backlog priority:800
-
Upgrade notes:
-
Sprint:nxplatform #50
-
Story Points:3
The error message comes from libarchive (an internal dependency of Archive Utility.app) when reading ZIP's "extra" field: https://github.com/libarchive/libarchive/blob/5bb998d869979140156bce59c0ff8f9063a25581/libarchive/archive_read_support_format_zip.c#L528
This is due to Nuxeo code attempting to use the "extra" field of ZIP entries for directories as a count of the number of children. The ZIP "extra" entry is under-specified in the ZIP format, Nuxeo uses it as a 4-byte big endian count. libarchive seems to use it as a 2-byte id + 2-byte length (little endian) + payload. Thus the error.
This storing of the count of children is a functionality needed only in "streaming" ZIP reading, to avoid reading too many ZIP entries beyond the children of the current folder, which avoids buffering. The "streaming" ZIP reading doesn't seem used currently in the Nuxeo codebase except for our "apidoc" plugin.
It's likely that just removing the assignment to the ZIP "extra" field will produce correct ZIP files. Code is at https://github.com/nuxeo/nuxeo/blob/a105ee2a16cc0aac7cb4c2264e2919a235c15d71/nuxeo-core/nuxeo-core-io/src/main/java/org/nuxeo/ecm/core/io/impl/plugins/NuxeoArchiveWriter.java#L124
FYI using zipdetails to dump the file gives:
... 00003E LOCAL HEADER #2 04034B50 000042 Extract Zip Spec 14 '2.0' 000043 Extract OS 00 'MS-DOS' 000044 General Purpose Flag 0808 [Bits 1-2] 0 'Normal Compression' [Bit 3] 1 'Streamed' [Bit 11] 1 'Language Encoding' 000046 Compression Method 0008 'Deflated' 000048 Last Mod Time 52CB8D39 'Fri Jun 11 17:41:50 2021' 00004C CRC 00000000 000050 Compressed Length 00000000 000054 Uncompressed Length 00000000 000058 Filename Length 0009 00005A Extra Length 0004 00005C Filename 'vehicles/' 000065 Extra ID #0001 0000 '' 000067 Length 0100 000069 PAYLOAD .. ...
- is related to
-
NXP-32023 Fix Invalid CEN header when importing Nuxeo zip files
- Resolved
- Is referenced in