You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Peter Lee (Jira)" <ji...@apache.org> on 2020/10/07 02:30:00 UTC

[jira] [Resolved] (COMPRESS-548) Decompression fails with NegativeArraySizeException

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

Peter Lee resolved COMPRESS-548.
--------------------------------
    Fix Version/s: 1.20
         Assignee: Peter Lee
       Resolution: Fixed

> Decompression fails with NegativeArraySizeException
> ---------------------------------------------------
>
>                 Key: COMPRESS-548
>                 URL: https://issues.apache.org/jira/browse/COMPRESS-548
>             Project: Commons Compress
>          Issue Type: Bug
>    Affects Versions: 1.20
>            Reporter: Maksim Zuev
>            Assignee: Peter Lee
>            Priority: Major
>             Fix For: 1.20
>
>         Attachments: NegativeArraySizeException.zip
>
>
> This Kotlin code fails with exception(NegativeArraySizeException.zip is in the attachments)
> Exception in thread "main" java.lang.NegativeArraySizeException: -3
> at org.apache.commons.compress.archivers.zip.AsiExtraField.parseFromLocalFileData(AsiExtraField.java:271) at org.apache.commons.compress.archivers.zip.ExtraFieldUtils.fillExtraField(ExtraFieldUtils.java:324) at org.apache.commons.compress.archivers.zip.ZipArchiveEntry$ExtraFieldParsingMode.fillAndMakeUnrecognizedOnError(ZipArchiveEntry.java:1219) at org.apache.commons.compress.archivers.zip.ZipArchiveEntry$ExtraFieldParsingMode.access$100(ZipArchiveEntry.java:1127) at org.apache.commons.compress.archivers.zip.ZipArchiveEntry$ExtraFieldParsingMode$1.fill(ZipArchiveEntry.java:1142) at org.apache.commons.compress.archivers.zip.ExtraFieldUtils.parse(ExtraFieldUtils.java:214) at org.apache.commons.compress.archivers.zip.ZipArchiveEntry.setExtra(ZipArchiveEntry.java:675) at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextZipEntry(ZipArchiveInputStream.java:341) at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextEntry(ZipArchiveInputStream.java:435) at kotlinx.fuzzer.tests.apache.zip.ApacheZipTestKt.main(ApacheZipTest.kt:85) at kotlinx.fuzzer.tests.apache.zip.ApacheZipTestKt.main(ApacheZipTest.kt)
> {code:java}
> import org.apache.commons.compress.archivers.ArchiveStreamFactory
> import java.io.ByteArrayInputStream
> import java.io.File
> fun main() {
>     val bytes = File("NegativeArraySizeException.zip").readBytes()
>     val input = ByteArrayInputStream(bytes)
>     ArchiveStreamFactory().createArchiveInputStream("zip", input).use { ais ->
>         ais.nextEntry
>         ais.readAllBytes()
>     }
> }
> {code}
> Expected some other exception as IOException is the only declared.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)