You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Madhu Gopanna (Jira)" <ji...@apache.org> on 2022/02/08 18:27:00 UTC

[jira] [Created] (COMPRESS-609) Corrupt Bz2 decompression fails to find all available entries

Madhu Gopanna created COMPRESS-609:
--------------------------------------

             Summary: Corrupt Bz2 decompression fails to find all available entries
                 Key: COMPRESS-609
                 URL: https://issues.apache.org/jira/browse/COMPRESS-609
             Project: Commons Compress
          Issue Type: Bug
    Affects Versions: 1.21
            Reporter: Madhu Gopanna


Attached are three Tars that fail to find all available entries (contents) and exit with an IO Exception. This change in behavior maybe related to specific change log in 1.21 when compared to 1.20 behavior for the same Tars.
 # Tar:  /gcc-8-8.3.0/gcc-8.3.0.tar.xz!/gcc-8.3.0/libgo/go/archive/tar/testdata/pax-bad-hdr-file.tar
 ## Missing:
 ### PAX1
 ### PAX1/PAX1
 ### /PAX1/PAX1/long-path-name
 ## Not missing: N/A
 ## Exception: 
{code:java}
java.io.IOException: Failed to read Paxheader.Value should end with a newline
    at org.apache.commons.compress.archivers.tar.TarUtils.parsePaxHeaders(TarUtils.java:769)
    at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.paxHeaders(TarArchiveInputStream.java:605)
    at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:421)
    at com.synopsys.sigcompcore.Application.main(Application.java:34) {code}

 # Tar: /gcc-8-8.3.0/gcc-8.3.0.tar.xz!/gcc-8.3.0/libgo/go/archive/tar/testdata/sparse-formats.tar
 ## Missing:
 ### end
 ### sparse-posix-0.0
 ### sparse-posix-0.1
 ### sparse-posix-1.0
 ## Not missing:
 ### sparse-gnu
 ## Exception: 
{code:java}
java.io.IOException: Truncated TAR archive
    at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.read(TarArchiveInputStream.java:743)
    at org.apache.commons.compress.utils.IOUtils.readFully(IOUtils.java:197)
    at org.apache.commons.compress.utils.IOUtils.skip(IOUtils.java:129)
    at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:364)
    at com.synopsys.sigcompcore.Application.main(Application.java:35){code}

 # Tar: /gcc-6-6.1.1/gcc-6.1.0-dfsg.tar!/gcc-6.1.0/libgo/go/archive/tar/testdata/writer-big-long.tar
 ## Missing: 16gig.txt
 ## Not missing: N/A
 ## Exception: 
{code:java}
java.io.IOException: Corrupted TAR archive, sparse entry is invalid
    at org.apache.commons.compress.archivers.tar.TarUtils.readSparseStructs(TarUtils.java:350)
    at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeaderUnwrapped(TarArchiveEntry.java:1656)
    at org.apache.commons.compress.archivers.tar.TarArchiveEntry.parseTarHeader(TarArchiveEntry.java:1595)
    at org.apache.commons.compress.archivers.tar.TarArchiveEntry.<init>(TarArchiveEntry.java:556)
    at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:379)
    at com.synopsys.sigcompcore.Application.main(Application.java:37)
Caused by: java.lang.IllegalArgumentException: Invalid byte 97 at offset 0 in 'ame/longname' len=12
    at org.apache.commons.compress.archivers.tar.TarUtils.parseOctal(TarUtils.java:153)
    at org.apache.commons.compress.archivers.tar.TarUtils.parseOctalOrBinary(TarUtils.java:183)
    at org.apache.commons.compress.archivers.tar.TarUtils.parseSparse(TarUtils.java:324)
    at org.apache.commons.compress.archivers.tar.TarUtils.readSparseStructs(TarUtils.java:339)
    ... 5 more{code}

Expected behavior: Log the IO Exception and exit(1.21 behavior) from corrupted or truncated Tar after decompressing all available Tar entries (1.20 behavior).



--
This message was sent by Atlassian Jira
(v8.20.1#820001)