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");