On Wed, 25 Sep 2024 19:44:46 GMT, Claes Redestad <redes...@openjdk.org> wrote:
> We'd be throwing an OOMError today if we soared too close to the limit > (Integer.MAX_VALUE - ENDHDR - 2 and above), then throw zerror if we go beyond > the limit. I think you might be off by one there :) The current code incorrectly fails to reject a CEN size of `Integer.MAX_VALUE - ENDHDR - 1`, and instead cause an OOME for exceeding the implementation limit of int[]. The size `Integer.MAX_VALUE - ENDHDR - 2` is allowed, as it should. So the existing code was off-by-one in that it allowed exactly one CEN size which was larger than the implementation limit. Yes, I'd be surprised if this fix gets any user excited. But I think from a maintainer's point of view, it may be easier to understand code when it's stricly correct since it removes any reason to ponder why the code is almost, but not completely correct. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/20905#discussion_r1775957317