AIOOB in ChangeIdUtil.indexOfChangeId if amended message is a newline

Bug: 456792
Change-Id: Idf38a0db7dc72d672ff185dcac2f41f0012a6673
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
This commit is contained in:
Andrey Loskutov 2015-01-06 14:33:07 +01:00
parent 79dacba922
commit 428d31efd3
2 changed files with 6 additions and 0 deletions

View File

@ -639,6 +639,10 @@ public void testWithEndingURL() throws Exception {
@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"));

View File

@ -229,6 +229,8 @@ public static String insertId(String message, ObjectId changeId,
*/
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) {