Fix StringIndexOutOfBounds in MultiColumnExtension The line was subset as text; use text to determine the length in case there was leading space that was skipped here. Change-Id: I95e3971a8254c5a63ff31c016ae2238e6fb01d51
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/doc/MultiColumnExtension.java b/gitiles-servlet/src/main/java/com/google/gitiles/doc/MultiColumnExtension.java index da1a068..aeb3d89 100644 --- a/gitiles-servlet/src/main/java/com/google/gitiles/doc/MultiColumnExtension.java +++ b/gitiles-servlet/src/main/java/com/google/gitiles/doc/MultiColumnExtension.java
@@ -161,12 +161,13 @@ int s = state.getNextNonSpaceIndex(); CharSequence line = state.getLine(); CharSequence text = line.subSequence(s, line.length()); - if (text.length() >= MARKER.length() - && MARKER.contentEquals(text.subSequence(0, MARKER.length()))) { - String layout = text.subSequence(MARKER.length(), line.length()).toString().trim(); - return BlockStart.of(new MultiColumnParser(layout)).atIndex(line.length()); + if (text.length() < MARKER.length() + || !MARKER.contentEquals(text.subSequence(0, MARKER.length()))) { + return BlockStart.none(); } - return BlockStart.none(); + + String layout = text.subSequence(MARKER.length(), text.length()).toString().trim(); + return BlockStart.of(new MultiColumnParser(layout)).atIndex(text.length()); } } }