From c40953c194aa88811e3575f058f1beaa0d5ee3c1 Mon Sep 17 00:00:00 2001 From: iyxan23 Date: Thu, 29 Aug 2024 21:37:26 +0700 Subject: [PATCH] fix: use int instead of short to prevent overflowing --- src/main/java/com/iyxan23/zipalignjava/ZipAlign.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/iyxan23/zipalignjava/ZipAlign.java b/src/main/java/com/iyxan23/zipalignjava/ZipAlign.java index 673134f..300d036 100644 --- a/src/main/java/com/iyxan23/zipalignjava/ZipAlign.java +++ b/src/main/java/com/iyxan23/zipalignjava/ZipAlign.java @@ -269,8 +269,8 @@ public static void alignZip(RandomAccessFile file, OutputStream out, int alignme // calculate the amount of alignment needed long dataPos = fileOffset + 30 + fileNameLen + extraFieldLen + shiftAmount; - short wrongOffset = (short) (dataPos % soFileAlignment); - short alignAmount = wrongOffset == 0 ? 0 : (short) (soFileAlignment - wrongOffset); + int wrongOffset = (int) (dataPos % soFileAlignment); + int alignAmount = wrongOffset == 0 ? 0 : (soFileAlignment - wrongOffset); shiftAmount += alignAmount; // only align when alignAmount is not 0 (not already aligned) @@ -301,8 +301,8 @@ public static void alignZip(RandomAccessFile file, OutputStream out, int alignme // calculate the amount of alignment needed long dataPos = fileOffset + 30 + fileNameLen + extraFieldLen + shiftAmount; - short wrongOffset = (short) (dataPos % alignment); - short alignAmount = wrongOffset == 0 ? 0 : (short) (alignment - wrongOffset); + int wrongOffset = (int) (dataPos % alignment); + int alignAmount = wrongOffset == 0 ? 0 : (alignment - wrongOffset); shiftAmount += alignAmount; // only align when alignAmount is not 0 (not already aligned) @@ -381,12 +381,12 @@ public static void alignZip(RandomAccessFile file, OutputStream out, int alignme } private static class Alignment { - public short alignAmount; + public int alignAmount; public long extraFieldLenOffset; public short extraFieldLenValue; public int extraFieldExtensionOffset; - public Alignment(short alignAmount, long extraFieldLenOffset, short extraFieldLenValue, + public Alignment(int alignAmount, long extraFieldLenOffset, short extraFieldLenValue, int extraFieldExtensionOffset) { this.alignAmount = alignAmount; this.extraFieldLenOffset = extraFieldLenOffset;