commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Bodewig (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (COMPRESS-436) ZipArchiveInputStream#getNextZipEntry should verify compressed size is known for bzip2, implode etc.
Date Fri, 05 Jan 2018 08:33:00 GMT

     [ https://issues.apache.org/jira/browse/COMPRESS-436?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Stefan Bodewig updated COMPRESS-436:
------------------------------------
    Summary: ZipArchiveInputStream#getNextZipEntry should verify compressed size is known
for bzip2, implode etc.  (was: ZipArchiveInputStream#getNextZipEntry should throw an exception
if compressed size is unknown for bzip2, implode etc.)

> ZipArchiveInputStream#getNextZipEntry should verify compressed size is known 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
>              Labels: zip
>             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)

Mime
View raw message