Hi there,

We maintain the Bazel (https://bazel.build/) build system, which uses
Apache Commons Compress to handle archive extraction. A user reported that
a certain sparse tarball always triggers an error (
https://github.com/bazelbuild/bazel/issues/20269#issuecomment-1821250607),
and the steps to reproduce the error are very simple:

#!/usr/bin/env bash

set -o errexit -o nounset

echo "Downloading commons-compress"
wget 
https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.25.0/commons-compress-1.25.0.jar
echo "Downloading sample sparse archive"
wget 
https://github.com/astral-sh/ruff/releases/download/v0.1.6/ruff-aarch64-apple-darwin.tar.gz
gunzip ruff-aarch64-apple-darwin.tar.gz

echo "Testing with system tar"
tar -tf ruff-aarch64-apple-darwin.tar
echo "Testing with commons-compress"
java -jar commons-compress-1.25.0.jar ruff-aarch64-apple-darwin.tar

->

Testing with system tar
ruff
Testing with commons-compress
Analysing ruff-aarch64-apple-darwin.tar
Created org.apache.commons.compress.archivers.tar.TarArchiveInputStream@17f052a3
ruff
Exception in thread "main" java.io.IOException: Truncated TAR archive
        at 
org.apache.commons.compress.archivers.tar.TarArchiveInputStream.read(TarArchiveInputStream.java:694)
        at org.apache.commons.compress.utils.IOUtils.readFully(IOUtils.java:244)
        at org.apache.commons.compress.utils.IOUtils.skip(IOUtils.java:355)
        at 
org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:451)
        at 
org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:426)
        at 
org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:50)
        at 
org.apache.commons.compress.archivers.Lister.listStream(Lister.java:79)
        at org.apache.commons.compress.archivers.Lister.main(Lister.java:133)


I tried to file an issue on JIRA but my account signup is pending approval.
The signup page asked me to try the mailing list, so here goes.

-X

Reply via email to