This is an automated email from the ASF dual-hosted git repository. bodewig pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-compress.git
commit 96317153c10f6358877729672fc5a221055a0c31 Author: Stefan Bodewig <bode...@apache.org> AuthorDate: Sat May 1 18:26:09 2021 +0200 AsiExtraField actually expects quite a few more bytes than it claims --- .../org/apache/commons/compress/archivers/zip/AsiExtraField.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/apache/commons/compress/archivers/zip/AsiExtraField.java b/src/main/java/org/apache/commons/compress/archivers/zip/AsiExtraField.java index 98194cd..fa6c864 100644 --- a/src/main/java/org/apache/commons/compress/archivers/zip/AsiExtraField.java +++ b/src/main/java/org/apache/commons/compress/archivers/zip/AsiExtraField.java @@ -21,6 +21,9 @@ package org.apache.commons.compress.archivers.zip; import java.util.zip.CRC32; import java.util.zip.ZipException; +import static org.apache.commons.compress.archivers.zip.ZipConstants.SHORT; +import static org.apache.commons.compress.archivers.zip.ZipConstants.WORD; + /** * Adds Unix file permission and UID/GID fields as well as symbolic * link handling. @@ -52,7 +55,7 @@ import java.util.zip.ZipException; public class AsiExtraField implements ZipExtraField, UnixStat, Cloneable { private static final ZipShort HEADER_ID = new ZipShort(0x756E); - private static final int WORD = 4; + private static final int MIN_SIZE = WORD + SHORT + WORD + SHORT + SHORT; /** * Standard Unix stat(2) file mode. */ @@ -266,9 +269,9 @@ public class AsiExtraField implements ZipExtraField, UnixStat, Cloneable { @Override public void parseFromLocalFileData(final byte[] data, final int offset, final int length) throws ZipException { - if (length < WORD) { + if (length < MIN_SIZE) { throw new ZipException("The length is too short, only " - + length + " bytes, expected at least " + WORD); + + length + " bytes, expected at least " + MIN_SIZE); } final long givenChecksum = ZipLong.getValue(data, offset);