Maksim Zuev created COMPRESS-548:
------------------------------------

             Summary: 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


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)

Reply via email to