Maksim Zuev created COMPRESS-547:
------------------------------------

             Summary: Decompression fails with IllegalArgumentException
                 Key: COMPRESS-547
                 URL: https://issues.apache.org/jira/browse/COMPRESS-547
             Project: Commons Compress
          Issue Type: Bug
            Reporter: Maksim Zuev
         Attachments: IllegalArgumentException.zip

This Kotlin code fails with exception(IllegalArgumentException.zipĀ is in the 
attachments)

Exception in thread "main" java.lang.IllegalArgumentException: 29 > 0 at 
java.base/java.util.Arrays.copyOfRange(Arrays.java:4029) at 
org.apache.commons.compress.archivers.zip.X0017_StrongEncryptionHeader.parseFileFormat(X0017_StrongEncryptionHeader.java:345)
 at 
org.apache.commons.compress.archivers.zip.X0017_StrongEncryptionHeader.parseFromLocalFileData(X0017_StrongEncryptionHeader.java:410)
 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("IllegalArgumentException.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