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 2a34aa7787f76055f62914d2db9fd55c6fcc0e6d Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Fri Feb 2 13:27:51 2024 -0500 Make org.apache.commons.compress.archivers.sevenz.StartHeader ivars final --- .../compress/archivers/sevenz/SevenZFile.java | 24 +++++++++------------- .../compress/archivers/sevenz/StartHeader.java | 13 +++++++++--- 2 files changed, 20 insertions(+), 17 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 c860fc1e6..492b35cab 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 @@ -1539,25 +1539,21 @@ public class SevenZFile implements Closeable { } private StartHeader readStartHeader(final long startHeaderCrc) throws IOException { - final StartHeader startHeader = new StartHeader(); // using Stream rather than ByteBuffer for the benefit of the // built-in CRC check try (DataInputStream dataInputStream = new DataInputStream( new CRC32VerifyingInputStream(new BoundedSeekableByteChannelInputStream(channel, 20), 20, startHeaderCrc))) { - startHeader.nextHeaderOffset = Long.reverseBytes(dataInputStream.readLong()); - if (startHeader.nextHeaderOffset < 0 || startHeader.nextHeaderOffset + SIGNATURE_HEADER_SIZE > channel.size()) { + long nextHeaderOffset = Long.reverseBytes(dataInputStream.readLong()); + if (nextHeaderOffset < 0 || nextHeaderOffset + SIGNATURE_HEADER_SIZE > channel.size()) { throw new IOException("nextHeaderOffset is out of bounds"); } - - startHeader.nextHeaderSize = Long.reverseBytes(dataInputStream.readLong()); - final long nextHeaderEnd = startHeader.nextHeaderOffset + startHeader.nextHeaderSize; - if (nextHeaderEnd < startHeader.nextHeaderOffset || nextHeaderEnd + SIGNATURE_HEADER_SIZE > channel.size()) { + long nextHeaderSize = Long.reverseBytes(dataInputStream.readLong()); + final long nextHeaderEnd = nextHeaderOffset + nextHeaderSize; + if (nextHeaderEnd < nextHeaderOffset || nextHeaderEnd + SIGNATURE_HEADER_SIZE > channel.size()) { throw new IOException("nextHeaderSize is out of bounds"); } - - startHeader.nextHeaderCrc = 0xffffFFFFL & Integer.reverseBytes(dataInputStream.readInt()); - - return startHeader; + long nextHeaderCrc = 0xffffFFFFL & Integer.reverseBytes(dataInputStream.readInt()); + return new StartHeader(nextHeaderOffset, nextHeaderSize, nextHeaderCrc); } } @@ -2220,9 +2216,9 @@ public class SevenZFile implements Closeable { if (nid == NID.kEncodedHeader || nid == NID.kHeader) { try { // Try to initialize Archive structure from here - final StartHeader startHeader = new StartHeader(); - startHeader.nextHeaderOffset = pos - previousDataSize; - startHeader.nextHeaderSize = channel.size() - pos; + long nextHeaderOffset = pos - previousDataSize; + long nextHeaderSize = channel.size() - pos; + final StartHeader startHeader = new StartHeader(nextHeaderOffset, nextHeaderSize, 0); final Archive result = initializeArchive(startHeader, password, false); // Sanity check: There must be some data... if (result.packSizes.length > 0 && result.files.length > 0) { diff --git a/src/main/java/org/apache/commons/compress/archivers/sevenz/StartHeader.java b/src/main/java/org/apache/commons/compress/archivers/sevenz/StartHeader.java index e4f083fea..855ea03f6 100644 --- a/src/main/java/org/apache/commons/compress/archivers/sevenz/StartHeader.java +++ b/src/main/java/org/apache/commons/compress/archivers/sevenz/StartHeader.java @@ -17,7 +17,14 @@ package org.apache.commons.compress.archivers.sevenz; final class StartHeader { - long nextHeaderOffset; - long nextHeaderSize; - long nextHeaderCrc; + + final long nextHeaderOffset; + final long nextHeaderSize; + final long nextHeaderCrc; + + StartHeader(final long nextHeaderOffset, final long nextHeaderSize, final long nextHeaderCrc) { + this.nextHeaderOffset = nextHeaderOffset; + this.nextHeaderSize = nextHeaderSize; + this.nextHeaderCrc = nextHeaderCrc; + } }