Integrated: 8321396: Retire test/jdk/java/util/zip/NoExtensionSignature.java

Eirik Bjørsnøs eirbjo at openjdk.org
Fri Feb 2 20:24:08 UTC 2024


On Tue, 5 Dec 2023 15:58:14 GMT, Eirik Bjørsnøs <eirbjo at openjdk.org> wrote:

> Please review this PR which suggests we retire the ZIP test `NoExtensionSignature` along with its `test.jar` test vector. 
> 
> The concern of a missing data descriptor signature is covered by the recently updated  `DataDescriptorSignatureMissing` test, see #12959. That test is more complete, includes more documentation and uses a programmatically generated test vector.
> 
> Careful analysis of the deleted `test.jar` test vector revealed that it contains a local header with non-zero `compressed size` and `uncompressed size` fields for a streaming-mode entry. `APPNOTE.TXT` mandates that when bit 3 of the general purpose bit flag is set, then these fields and the `crc` field should all be set to zero. 
> 
> By injecting assertions into `ZipInputStream.readLOC` I was able to determine that `NoExtensionSignature` is the only test currently parsing a ZIP file with such non-zero fields in streaming mode. 
> 
> Because of this, and out of caution, this PR introduces a new test `DataDescriptorIgnoreCrcAndSizeFields` which  explicitly verifies that `ZipInputStream` does not read any non-zero `crc`, `compressed size` or `uncompressed size` field values from a local header when in streaming mode. `ZipInputStream` should ignore these values and it would be good to have a test which asserts that this invariant holds even when the fields are non-zero.

This pull request has now been integrated.

Changeset: 63cb1f88
Author:    Eirik Bjørsnøs <eirbjo at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/63cb1f8818322c970454664b387a113935923f2b
Stats:     222 lines in 3 files changed: 180 ins; 42 del; 0 mod

8321396: Retire test/jdk/java/util/zip/NoExtensionSignature.java

Reviewed-by: lancea

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

PR: https://git.openjdk.org/jdk/pull/16975


More information about the core-libs-dev mailing list