From ffbd6e70d1cdc2638f31860e810c17ad3d006fd6 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 10 Oct 2012 16:11:17 -0400
Subject: [PATCH] Fix possible string index out of bounds exception

---
 src/com/gitblit/utils/StringUtils.java |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/com/gitblit/utils/StringUtils.java b/src/com/gitblit/utils/StringUtils.java
index 0711338..d115f89 100644
--- a/src/com/gitblit/utils/StringUtils.java
+++ b/src/com/gitblit/utils/StringUtils.java
@@ -315,11 +315,16 @@
 	 * @return the relative path
 	 */
 	public static String getRelativePath(String basePath, String fullPath) {
-		String relativePath = fullPath.substring(basePath.length()).replace('\\', '/');
-		if (relativePath.charAt(0) == '/') {
-			relativePath = relativePath.substring(1);
+		String bp = basePath.replace('\\', '/').toLowerCase();
+		String fp = fullPath.replace('\\', '/').toLowerCase();
+		if (fp.startsWith(bp)) {
+			String relativePath = fullPath.substring(basePath.length()).replace('\\', '/');
+			if (relativePath.charAt(0) == '/') {
+				relativePath = relativePath.substring(1);
+			}
+			return relativePath;
 		}
-		return relativePath;
+		return fullPath;
 	}
 
 	/**

--
Gitblit v1.9.1