diff --git a/CONTRIBUTORS b/CONTRIBUTORS index e78bd62e9..a4b01e86f 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -109,6 +109,7 @@ Don Brown Don Ferguson Don Jeffery Drew Sudell +Earl Hood Edison Guo Eduard Wirch Edwin Woudt diff --git a/WHATSNEW b/WHATSNEW index 9fb145468..db8f88f78 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -7,6 +7,11 @@ Changes that could break older environments: Fixed bugs: ----------- + * ZipOutputStream could cause an ArrayIndexOutOfBoundsException when + adding entries with comments. This never happens when using Ant as + a build tool but may affect users using Ant's zip package as a + library. + Other changes: -------------- diff --git a/contributors.xml b/contributors.xml index 7ea115e35..3cdc06ea4 100644 --- a/contributors.xml +++ b/contributors.xml @@ -463,6 +463,10 @@ Drew Sudell + + Earl + Hood + Edison Guo diff --git a/src/main/org/apache/tools/zip/ZipOutputStream.java b/src/main/org/apache/tools/zip/ZipOutputStream.java index 261c717ec..0b4f5f902 100644 --- a/src/main/org/apache/tools/zip/ZipOutputStream.java +++ b/src/main/org/apache/tools/zip/ZipOutputStream.java @@ -1258,7 +1258,7 @@ public class ZipOutputStream extends FilterOutputStream { int extraStart = CFH_FILENAME_OFFSET + nameLen; System.arraycopy(extra, 0, buf, extraStart, extra.length); - int commentStart = extraStart + commentLen; + int commentStart = extraStart + extra.length; // file comment System.arraycopy(commentB.array(), commentB.arrayOffset(), buf, commentStart, commentLen);