commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Kodis (Commented) (JIRA)" <>
Subject [jira] [Commented] (COMPRESS-163) Unable to extract a file larger than 8GB from a Posix-format tar archive
Date Tue, 06 Dec 2011 16:19:39 GMT


John Kodis commented on COMPRESS-163:

Yes, the Pax headers are read in TarArchiveInputStream.paxHeaders.  The pax header keyword=value
pairs are first read into a hash table, and the table is subsequently scanned for values (namely,
path, linkpath, uid, uname, gid, gname, and size) which are contained in a TarArchiveEntry.
 If found, the values in the Pax header hash table are used to supersede those in the current

Also, on reviewing this section of code, I noticed that there's a minor error.  The fields
in the Pax header are stored as a length, a space character, the field name, an equals sign,
the field value, and a newline character.  So, for example "30 atime=1321711775.972059463\n".
 The code which extracts the keyword=value pairs ignores the length field and instead looks
for the newline character to mark the end of the value field.  This is okay for numeric values,
but means that any path or linkpath values which contain a newline character will be misinterpreted.
 So although the code isn't strictly correct, it's unlikely to cause a problem in practice.

> Unable to extract a file larger than 8GB from a Posix-format tar archive
> ------------------------------------------------------------------------
>                 Key: COMPRESS-163
>                 URL:
>             Project: Commons Compress
>          Issue Type: Bug
>          Components: Compressors
>    Affects Versions: 1.3
>         Environment: The tar archive used for testing was created by GNU tar, but the
problem will occur with any Posix-formatted tar file containing files over 8GB in size.
>            Reporter: John Kodis
>            Priority: Minor
>             Fix For: 1.4
>         Attachments: 0003-Allow-reading-large-files-from-Posix-tar-archives.patch
>   Original Estimate: 24h
>  Remaining Estimate: 24h
> An attempt to read a posix-format tar archive containing a file in excess of 8^11 bytes
in size will fail with a "Size out of range" illegal argument exception.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message