This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-compress.git

commit ef574bb2be9abdbfea9f257033b96b85e1650251
Author: Gary D. Gregory <garydgreg...@gmail.com>
AuthorDate: Sat Aug 16 15:40:08 2025 -0400

    Don't loose precision after reading a uint64
---
 .../apache/commons/compress/archivers/sevenz/SevenZFile.java   | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git 
a/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java 
b/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java
index ad7bf225a..9f48a62ee 100644
--- a/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java
+++ b/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java
@@ -1942,7 +1942,7 @@ private void sanityCheckFilesInfo(final ByteBuffer 
header, final ArchiveStatisti
         stats.numberOfEntriesWithStream = stats.numberOfEntries - 
Math.max(emptyStreams, 0);
     }
 
-    private int sanityCheckFolder(final ByteBuffer header, final 
ArchiveStatistics stats) throws IOException {
+    private long sanityCheckFolder(final ByteBuffer header, final 
ArchiveStatistics stats) throws IOException {
         final int numCoders = toNonNegativeInt("numCoders", 
readUint64(header));
         if (numCoders == 0) {
             throw new ArchiveException("Folder without coders");
@@ -2010,7 +2010,7 @@ private int sanityCheckFolder(final ByteBuffer header, 
final ArchiveStatistics s
                 }
             }
         }
-        return (int) totalOutStreams;
+        return totalOutStreams;
     }
 
     private void sanityCheckPackInfo(final ByteBuffer header, final 
ArchiveStatistics stats) throws IOException {
@@ -2126,7 +2126,7 @@ private void sanityCheckUnpackInfo(final ByteBuffer 
header, final ArchiveStatist
         if (external != 0) {
             throw new ArchiveException("External unsupported");
         }
-        final List<Integer> numberOfOutputStreamsPerFolder = new 
LinkedList<>();
+        final List<Long> numberOfOutputStreamsPerFolder = new LinkedList<>();
         for (int i = 0; i < stats.numberOfFolders; i++) {
             numberOfOutputStreamsPerFolder.add(sanityCheckFolder(header, 
stats));
         }
@@ -2139,8 +2139,8 @@ private void sanityCheckUnpackInfo(final ByteBuffer 
header, final ArchiveStatist
         if (nid != NID.kCodersUnpackSize) {
             throw new ArchiveException("Expected kCodersUnpackSize, got %s", 
nid);
         }
-        for (final int numberOfOutputStreams : numberOfOutputStreamsPerFolder) 
{
-            for (int i = 0; i < numberOfOutputStreams; i++) {
+        for (final long numberOfOutputStreams : 
numberOfOutputStreamsPerFolder) {
+            for (long i = 0; i < numberOfOutputStreams; i++) {
                 final long unpackSize = readUint64(header);
                 if (unpackSize < 0) {
                     throw new IllegalArgumentException("Negative unpackSize");

Reply via email to