diff options
author | James Moger <james.moger@gitblit.com> | 2012-10-10 16:11:17 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2012-10-10 16:11:17 -0400 |
commit | ffbd6e70d1cdc2638f31860e810c17ad3d006fd6 (patch) | |
tree | dfbda888bb6b6b31be2837225c0df2ea34eb664e /src/com/gitblit/utils/StringUtils.java | |
parent | 75acde76423af76bad293c921e737566e7c4343e (diff) | |
download | gitblit-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.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 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;
}
/**
|