You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Brian Miller (Jira)" <ji...@apache.org> on 2022/05/04 19:00:00 UTC
[jira] [Updated] (COMPRESS-619) Large SevenZFile fails When Next Header Size is Greater than Max Int
[ https://issues.apache.org/jira/browse/COMPRESS-619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brian Miller updated COMPRESS-619:
----------------------------------
Description:
When reading a large file (42GB) the following stack trace is produced:
{code:java}
java.io.IOException: Cannot handle nextHeaderSize 4102590414
at org.apache.commons.compress.archivers.sevenz.SevenZFile.assertFitsIntoNonNegativeInt(SevenZFile.java:2076) ~[classes/:?]
at org.apache.commons.compress.archivers.sevenz.SevenZFile.initializeArchive(SevenZFile.java:528) ~[classes/:?]
at org.apache.commons.compress.archivers.sevenz.SevenZFile.readHeaders(SevenZFile.java:474) ~[classes/:?]
at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:343) ~[classes/:?]
at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:136) ~[classes/:?]
at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:376) ~[classes/:?]
at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:364) ~[classes/:?] {code}
The file was produced using the SevenZFile class and contains a large number of very small files all inserted using copy compression. It passes the 7z tests and has the following statistics:
{code:java}
Files: 40872560
Size: 43708874326
Compressed: 47811464772
{code}
It is failing because a ByteBuffer can't be created that is large enough with something over max integer in size to do the CRC check.
was:
When reading a large file (42GB) the following stack trace is produced:
{code:java}
java.io.IOException: Cannot handle nextHeaderSize 4102590414
at org.apache.commons.compress.archivers.sevenz.SevenZFile.assertFitsIntoNonNegativeInt(SevenZFile.java:2076) ~[classes/:?]
at org.apache.commons.compress.archivers.sevenz.SevenZFile.initializeArchive(SevenZFile.java:528) ~[classes/:?]
at org.apache.commons.compress.archivers.sevenz.SevenZFile.readHeaders(SevenZFile.java:474) ~[classes/:?]
at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:343) ~[classes/:?]
at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:136) ~[classes/:?]
at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:376) ~[classes/:?]
at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:364) ~[classes/:?] {code}
The file was produced using the SevenZOutputFile class and contains a large number of very small files all inserted using copy compression. It passes the 7z tests and has the following statistics:
{code:java}
Files: 40872560
Size: 43708874326
Compressed: 47811464772
{code}
It is failing because a ByteBuffer can't be created that is large enough with something over max integer in size to do the CRC check.
> Large SevenZFile fails When Next Header Size is Greater than Max Int
> --------------------------------------------------------------------
>
> Key: COMPRESS-619
> URL: https://issues.apache.org/jira/browse/COMPRESS-619
> Project: Commons Compress
> Issue Type: Bug
> Components: Archivers
> Affects Versions: 1.21
> Reporter: Brian Miller
> Priority: Minor
>
> When reading a large file (42GB) the following stack trace is produced:
>
> {code:java}
> java.io.IOException: Cannot handle nextHeaderSize 4102590414
> at org.apache.commons.compress.archivers.sevenz.SevenZFile.assertFitsIntoNonNegativeInt(SevenZFile.java:2076) ~[classes/:?]
> at org.apache.commons.compress.archivers.sevenz.SevenZFile.initializeArchive(SevenZFile.java:528) ~[classes/:?]
> at org.apache.commons.compress.archivers.sevenz.SevenZFile.readHeaders(SevenZFile.java:474) ~[classes/:?]
> at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:343) ~[classes/:?]
> at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:136) ~[classes/:?]
> at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:376) ~[classes/:?]
> at org.apache.commons.compress.archivers.sevenz.SevenZFile.<init>(SevenZFile.java:364) ~[classes/:?] {code}
>
> The file was produced using the SevenZFile class and contains a large number of very small files all inserted using copy compression. It passes the 7z tests and has the following statistics:
>
> {code:java}
> Files: 40872560
> Size: 43708874326
> Compressed: 47811464772
> {code}
> It is failing because a ByteBuffer can't be created that is large enough with something over max integer in size to do the CRC check.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)