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]>

Reply via email to