Stefan Bodewig created COMPRESS-436:
---------------------------------------
Summary: ZipArchiveInputStream#getNextZipEntry should throw an
exception if compressed size is unknown for bzip2, implode etc.
Key: COMPRESS-436
URL: https://issues.apache.org/jira/browse/COMPRESS-436
Project: Commons Compress
Issue Type: Bug
Components: Archivers
Affects Versions: 1.15
Reporter: Stefan Bodewig
Fix For: 1.16
{code}
if (current.entry.getCompressedSize() != ArchiveEntry.SIZE_UNKNOWN) {
if (current.entry.getMethod() == ZipMethod.UNSHRINKING.getCode()) {
current.in = new UnshrinkingInputStream(new
BoundedInputStream(in, current.entry.getCompressedSize()));
} else if (current.entry.getMethod() ==
ZipMethod.IMPLODING.getCode()) {
current.in = new ExplodingInputStream(
current.entry.getGeneralPurposeBit().getSlidingDictionarySize(),
current.entry.getGeneralPurposeBit().getNumberOfShannonFanoTrees(),
new BoundedInputStream(in,
current.entry.getCompressedSize()));
} else if (current.entry.getMethod() == ZipMethod.BZIP2.getCode()) {
current.in = new BZip2CompressorInputStream(new
BoundedInputStream(in, current.entry.getCompressedSize()));
}
}
{code}
never sets {{current.in}} if the compressed size is unknown which probably
leads to a NullPointerException in {{read}} later. We should fail early with a
useful error message instead.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)