HostIndexServlet: Prevent StringIndexOutOfBoundsException Bug: Issue 91 Change-Id: Id4c4f9f5cf53321ec97ba355508264c929b9fe2f
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/HostIndexServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/HostIndexServlet.java index d8aec26..79d8927 100644 --- a/gitiles-servlet/src/main/java/com/google/gitiles/HostIndexServlet.java +++ b/gitiles-servlet/src/main/java/com/google/gitiles/HostIndexServlet.java
@@ -114,7 +114,9 @@ SoyListData repos = new SoyListData(); for (RepositoryDescription desc : descs.values()) { - repos.add(toSoyMapData(desc, prefix, view)); + if (prefix == null || desc.name.startsWith(prefix)) { + repos.add(toSoyMapData(desc, prefix, view)); + } } String hostName = urls.getHostName(req); @@ -175,7 +177,10 @@ } private static String stripPrefix(@Nullable String prefix, String name) { - return prefix != null ? name.substring(prefix.length() + 1) : name; + if (prefix != null && name.startsWith(prefix)) { + return name.substring(prefix.length() + 1); + } + return name; } private static Set<String> parseShowBranch(HttpServletRequest req) {