diff options
author | Andrey Loskutov <loskutov@gmx.de> | 2015-01-06 14:33:07 +0100 |
---|---|---|
committer | Andrey Loskutov <loskutov@gmx.de> | 2015-01-06 14:33:07 +0100 |
commit | 428d31efd305b08e83dbd9fdd895d18dc232c295 (patch) | |
tree | ba2328078dca307f4e0a3ac13ef2407ad352a4a2 | |
parent | 79dacba9229e6c46e98e1f7d3912c3091e56da6a (diff) | |
download | jgit-428d31efd305b08e83dbd9fdd895d18dc232c295.tar.gz jgit-428d31efd305b08e83dbd9fdd895d18dc232c295.zip |
AIOOB in ChangeIdUtil.indexOfChangeId if amended message is a newline
Bug: 456792
Change-Id: Idf38a0db7dc72d672ff185dcac2f41f0012a6673
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
-rw-r--r-- | org.eclipse.jgit.test/tst/org/eclipse/jgit/util/ChangeIdUtilTest.java | 4 | ||||
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/util/ChangeIdUtil.java | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/ChangeIdUtilTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/ChangeIdUtilTest.java index 66649b1006..7273cdbabc 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/ChangeIdUtilTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/ChangeIdUtilTest.java @@ -639,6 +639,10 @@ public class ChangeIdUtilTest { @Test public void testIndexOfChangeId() { + assertEquals(-1, ChangeIdUtil.indexOfChangeId("", "\n")); + assertEquals(-1, ChangeIdUtil.indexOfChangeId("\n", "\n")); + assertEquals(-1, ChangeIdUtil.indexOfChangeId("\r\n", "\r\n")); + assertEquals(3, ChangeIdUtil.indexOfChangeId("x\n" + "\n" + "Change-Id: I3b7e4e16b503ce00f07ba6ad01d97a356dad7701\n", "\n")); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/ChangeIdUtil.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/ChangeIdUtil.java index 676ca9b8dc..35850dcaac 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/util/ChangeIdUtil.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/ChangeIdUtil.java @@ -229,6 +229,8 @@ public class ChangeIdUtil { */ public static int indexOfChangeId(String message, String delimiter) { String[] lines = message.split(delimiter); + if (lines.length == 0) + return -1; int indexOfChangeIdLine = 0; boolean inFooter = false; for (int i = lines.length - 1; i >= 0; --i) { |