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

Jaikiran Pai jpai at openjdk.org
Mon Jul 29 07:32:34 UTC 2024


On Fri, 19 Jul 2024 15:36:10 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 incrementally with one additional commit since the last revision:
> 
>   Use /* instead of /** comments

Hello Liam,

>  At that point there were three including pack200, and now we're down to two, but consolidating zip_util.c and parse_manifest.c still seems like a big job.

In a different context, I was experimenting with some changes in the launcher code (one part of which involves this parsing of the manifest). While at it, we realized that some of the changes I am looking into will allow us to move away from having to parse the manifest of the jar in this code path. What that then means is that we won't have to do any of this jar parsing within the C code of the launcher and can rely on existing java code to do the necessary jar parsing. That should then allow us to support zip64 jars without this added complexity and maintenance in the C code. 
I have some prototype change which I'm experimenting with. Please give me some more days so that I can bring it to a state where it can be reviewed. As such, I request you to put on hold, for a few more days, the changes that are being proposed in this current PR.

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

PR Comment: https://git.openjdk.org/jdk/pull/18479#issuecomment-2255174629


More information about the core-libs-dev mailing list