RFR: 8328995: Launcher can't open jar files where the offset of the manifest is >4GB [v8]

Jaikiran Pai jpai at openjdk.org
Fri Jul 19 13:22:37 UTC 2024


On Thu, 18 Jul 2024 21:36:54 GMT, Liam Miller-Cushon <cushon at openjdk.org> wrote:

>> This change fixes a zip64 bug in the launcher that is prevent it from reading the manifest of jars where the 'relative offset of local header' field in the central directory entry is >4GB. As described in APPNOTE.TXT 4.5.3, the offset is too large to be stored in the central directory it is stored in a 'Zip64 Extended Information Extra Field'.
>
> Liam Miller-Cushon has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 10 additional commits since the last revision:
> 
>  - Add a missing `break`
>  - Merge branch 'master' into JDK-8328995
>  - Merge remote-tracking branch 'origin/master' into JDK-8328995
>  - Move test to test/jdk/tools/launcher
>  - Add some more comments
>  - Maximum Zip64 extra field length is 32
>  - Make cendsk an unsigned short
>  - Fix disk number size
>  - Improvements
>    
>    * don't rely on variable length arrays
>    * only run the test of 64 bit machines, since it requires >4GB of heap
>  - 8328995: launcher can't open jar files where the offset of the manifest is >4GB

src/java.base/share/native/libjli/parse_manifest.c line 186:

> 184: }
> 185: 
> 186: /**

Nit: For the sake of consistency with the rest of the comments in this file, this comment should be a `/*` instead of `/**`

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

PR Review Comment: https://git.openjdk.org/jdk/pull/18479#discussion_r1684376439


More information about the core-libs-dev mailing list