summaryrefslogtreecommitdiffstats
path: root/src/com/gitblit/utils/StringUtils.java
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2012-10-10 16:11:17 -0400
committerJames Moger <james.moger@gitblit.com>2012-10-10 16:11:17 -0400
commitffbd6e70d1cdc2638f31860e810c17ad3d006fd6 (patch)
treedfbda888bb6b6b31be2837225c0df2ea34eb664e /src/com/gitblit/utils/StringUtils.java
parent75acde76423af76bad293c921e737566e7c4343e (diff)
downloadgitblit-ffbd6e70d1cdc2638f31860e810c17ad3d006fd6.tar.gz
gitblit-ffbd6e70d1cdc2638f31860e810c17ad3d006fd6.zip
Fix possible string index out of bounds exception
Diffstat (limited to 'src/com/gitblit/utils/StringUtils.java')
-rw-r--r--src/com/gitblit/utils/StringUtils.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/com/gitblit/utils/StringUtils.java b/src/com/gitblit/utils/StringUtils.java
index 07113388..d115f896 100644
--- a/src/com/gitblit/utils/StringUtils.java
+++ b/src/com/gitblit/utils/StringUtils.java
@@ -315,11 +315,16 @@ public class StringUtils {
* @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;
}
/**