Merge "HostIndexServlet: Prevent StringIndexOutOfBoundsException"
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) {