RFR: 8313765: Invalid CEN header (invalid zip64 extra data field size) [v6]

Lance Andersen lancea at openjdk.org
Tue Aug 15 15:34:12 UTC 2023


On Tue, 15 Aug 2023 00:07:01 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:

> [TEST.zip](https://github.com/openjdk/jdk/files/12340301/TEST.zip)
> 
> try this example, zip -T passed, unzip works fine, but openjdk rejects it.

Yes, the Zip64 header in the CEN has a field size of 2 and as we are validating the Zip64 header size, you get the ZipException:

`Invalid CEN header (invalid zip64 extra data field  size)
`
> ----------------#1--------------------
> [Central Directory Header]
>      0x369: Signature        : 0x02014b50
>      0x36d: Created Zip Spec :       0x2d [4.5]
>      0x36e: Created OS       :        0x3 [UNIX]
>      0x36f: VerMadeby        :      0x32d [3, 4.5]
>      0x370: VerExtract       :       0x2d [4.5]
>      0x371: Flag             :      0x800
>      0x373: Method           :        0x8 [DEFLATED]
>      0x375: Last Mod Time    : 0x5703021b [Thu Aug 03 00:16:54 EDT 2023]
>      0x379: CRC              : 0x279590b5
>      0x37d: Compressed Size  :        0xa
>      0x381: Uncompressed Size:        0xb
>      0x385: Name Length      :        0x5
>      0x387: Extra Length     :        0x6
> 			Extra data:[01, 00, 02, 00, 00, 00]
> 		[tag=0x0001, sz=2]
> 			->ZIP64: 
> 			[data= 00 00 ]
>      0x389: Comment Length   :        0x0
>      0x38b: Disk Start       :        0x0
>      0x38d: Attrs            :        0x0
>      0x38f: AttrsEx          : 0x81a40000
>      0x393: Loc Header Offset:        0x0
>      0x397: File Name        : b.txt
> 
> [Local File Header]
>        0x0: Signature   :   0x04034b50
>        0x4: Version     :         0x2d    [4.5]
>        0x6: Flag        :        0x800
>        0x8: Method      :          0x8    [DEFLATED]
>        0xa: LastMTime   :   0x5703021b    [Thu Aug 03 00:16:54 EDT 2023]
>        0xe: CRC         :   0x279590b5
>       0x12: CSize       :          0xa
>       0x16: Size        :          0xb
>       0x1a: Name Length :          0x5    [b.txt]
>       0x1c: ExtraLength :         0x14
> 			Extra data:[01, 00, 10, 00, 0b, 00, 00, 00, 00, 00, 00, 00, 0a, 00, 00, 00, 00, 00, 00, 00]
> 		[tag=0x0001, sz=16]
> 			->ZIP64: *0xb *0xa 
> 			[data= 0b 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 ]
>       0x1e: File Name  : [b.txt]

-------------

PR Comment: https://git.openjdk.org/jdk/pull/15273#issuecomment-1679134441


More information about the core-libs-dev mailing list