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

Madhu Gopanna updated COMPRESS-608:
-----------------------------------
    Description: 
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).

  was:
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}


> Corrupt Tar decompression fails to find all available entries
> -------------------------------------------------------------
>
>                 Key: COMPRESS-608
>                 URL: https://issues.apache.org/jira/browse/COMPRESS-608
>             Project: Commons Compress
>          Issue Type: Bug
>    Affects Versions: 1.21
>            Reporter: Madhu Gopanna
>            Priority: Major
>         Attachments: pax-bad-hdr-file.tar, sparse-formats.tar, 
> writer-big-long.tar
>
>
> 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)

Reply via email to