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

Reply via email to