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
The following commit(s) were added to refs/heads/master by this push:
new b171524df SevenZFile now throws MemoryLimitException instead of other
Throwables
b171524df is described below
commit b171524dfb226ddc92a9595449421a36659a416c
Author: Gary D. Gregory <[email protected]>
AuthorDate: Sat Aug 16 15:51:45 2025 -0400
SevenZFile now throws MemoryLimitException instead of other Throwables
---
.../org/apache/commons/compress/archivers/sevenz/SevenZFile.java | 6 +++---
1 file changed, 3 insertions(+), 3 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 9f48a62ee..79f24d4bd 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
@@ -1346,7 +1346,7 @@ private void readFilesInfo(final ByteBuffer header, final
Archive archive) throw
case NID.kName: {
/* final int external = */ getUnsignedByte(header);
MemoryLimitException.checkKiB(bytesToKiB(size - 1),
maxMemoryLimitKiB);
- final byte[] names = new byte[ArchiveException.toIntExact(size
- 1)];
+ final byte[] names = new
byte[checkByteArray(ArchiveException.toIntExact(size - 1))];
final int namesLength = names.length;
get(header, names);
int nextFile = 0;
@@ -1465,7 +1465,7 @@ private void readFilesInfo(final ByteBuffer header, final
Archive archive) throw
private Folder readFolder(final ByteBuffer header) throws IOException {
final Folder folder = new Folder();
final int numCoders = readUint64ToIntExact(header);
- final Coder[] coders = new Coder[numCoders];
+ final Coder[] coders = new Coder[checkObjectArray(numCoders)];
long totalInStreams = 0;
long totalOutStreams = 0;
for (int i = 0; i < coders.length; i++) {
@@ -1743,7 +1743,7 @@ private void readSubStreamsInfo(final ByteBuffer header,
final Archive archive)
private void readUnpackInfo(final ByteBuffer header, final Archive
archive) throws IOException {
int nid = getUnsignedByte(header);
final int numFoldersInt = readUint64ToIntExact(header);
- final Folder[] folders = new Folder[numFoldersInt];
+ final Folder[] folders = new Folder[checkObjectArray(numFoldersInt)];
archive.folders = folders;
/* final int external = */ getUnsignedByte(header);
for (int i = 0; i < numFoldersInt; i++) {