Browse Source

AIOOB in ChangeIdUtil.indexOfChangeId if amended message is a newline

Bug: 456792
Change-Id: Idf38a0db7dc72d672ff185dcac2f41f0012a6673
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
tags/v3.7.0.201502031740-rc1
Andrey Loskutov 9 years ago
parent
commit
428d31efd3

+ 4
- 0
org.eclipse.jgit.test/tst/org/eclipse/jgit/util/ChangeIdUtilTest.java View File

@@ -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"));

+ 2
- 0
org.eclipse.jgit/src/org/eclipse/jgit/util/ChangeIdUtil.java View File

@@ -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) {

Loading…
Cancel
Save