You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2025/08/16 19:44:38 UTC

(commons-compress) 05/05: Don't loose precision after reading a uint64

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 <ga...@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");