[ 
https://issues.apache.org/jira/browse/COMPRESS-619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17532856#comment-17532856
 ] 

Gary D. Gregory commented on COMPRESS-619:
------------------------------------------

Hi All,

In git master, I reimplemented CRC-32 computation of NextHeader in 
SevenZFile.initializeArchive(StartHeader, byte[], boolean) as streaming but... 
to-do is to implement streaming for the rest of the method, which is less 
simple.

All of that to say, that this problem is still present because the buffer is 
still read in full, just later in the method...

> 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 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.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to