On Mon, 30 Sep 2024 09:24:22 GMT, Eirik Bjørsnøs <eir...@openjdk.org> wrote:

>> Please review this cleanup PR which makes `ZipFile.Source.initCEN` not 
>> include the 22-byte trailing`END` header when reading the `CEN` section of 
>> the ZIP file.
>> 
>> The reading of the END header was probably brought over from native code 
>> with the transition to Java in JDK 9.
>> 
>> In the current JDK, the END header is unused. This needlessly complicates 
>> multiple code paths accessing the array since they must account for the 
>> trailing END record when calculating the end of CEN position.
>> 
>> Additionally, the enforcement of the maximum CEN size limit is currently off 
>> by one. It allows the construction of a byte array of size 
>> `Integer.MAX_VALUE - 1`, but this size is not supported by OpenJDK. Instead, 
>> the maximum CEN limit should be such that is does not exceed  
>> `Integer.MAX_VALUE - 2`.
>> 
>> Testing:
>> 
>> The `EndOfCenValidation` test is updated to test the rejection of a CEN of 
>> size `Integer.MAX_VALUE - 1` as the new minumum rejected CEN size.
>> 
>> The `ZipFileOpen` benchmark seems neutral to this change.
>
> Eirik Bjørsnøs has updated the pull request incrementally with two additional 
> commits since the last revision:
> 
>  - Update copyright year for CenSizeTooLarge
>  - Delegate MAX_CEN_SIZE to existing internal constant 
> ArraysSupport.SOFT_MAX_ARRAY_LENGTH

Marked as reviewed by redestad (Reviewer).

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

PR Review: https://git.openjdk.org/jdk/pull/20905#pullrequestreview-2336869804

Reply via email to