remm 02/03/16 16:03:13
Modified: catalina/src/share/org/apache/naming/resources
FileDirContext.java
Log:
- Fix an off-by-one bug in the canonicalization code. Somehow it was failing only
on JDK 1.3, but not on 1.4.0, and somehow 4.0.x works fine (so I don't plan to fix
it).
Revision Changes Path
1.13 +8 -16
jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java
Index: FileDirContext.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- FileDirContext.java 14 Mar 2002 20:55:47 -0000 1.12
+++ FileDirContext.java 17 Mar 2002 00:03:13 -0000 1.13
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
1.12 2002/03/14 20:55:47 remm Exp $
- * $Revision: 1.12 $
- * $Date: 2002/03/14 20:55:47 $
+ * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/FileDirContext.java,v
1.13 2002/03/17 00:03:13 remm Exp $
+ * $Revision: 1.13 $
+ * $Date: 2002/03/17 00:03:13 $
*
* ====================================================================
*
@@ -99,7 +99,7 @@
* Filesystem Directory Context implementation helper class.
*
* @author Remy Maucherat
- * @version $Revision: 1.12 $ $Date: 2002/03/14 20:55:47 $
+ * @version $Revision: 1.13 $ $Date: 2002/03/17 00:03:13 $
*/
public class FileDirContext extends BaseDirContext {
@@ -854,15 +854,6 @@
*/
protected File file(String name) {
-/*
- name = normalize(name);
- if (name == null)
- return (null);
-
- if (File.separatorChar == '\\')
- name = name.replace('/', File.separatorChar);
-*/
-
File file = new File(base, name);
if (file.exists() && file.canRead()) {
@@ -875,8 +866,9 @@
if (canPath == null)
return null;
- if (!canPath.startsWith(absoluteBase))
+ if (!canPath.startsWith(absoluteBase)) {
return null;
+ }
// Windows only check
if ((caseSensitive) && (File.separatorChar == '\\')) {
@@ -888,12 +880,12 @@
canPath = normalize(canPath);
if ((absoluteBase.length() < absPath.length())
&& (absoluteBase.length() < canPath.length())) {
- absPath = absPath.substring(absoluteBase.length());
+ absPath = absPath.substring(absoluteBase.length() + 1);
if ((canPath == null) || (absPath == null))
return null;
if (absPath.equals(""))
absPath = "/";
- canPath = canPath.substring(absoluteBase.length());
+ canPath = canPath.substring(absoluteBase.length() + 1);
if (canPath.equals(""))
canPath = "/";
if (!canPath.equals(absPath))
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>