You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2014/04/17 17:01:07 UTC

svn commit: r1588272 - in /tomcat/trunk: java/org/apache/catalina/webresources/StandardRoot.java webapps/docs/changelog.xml

Author: markt
Date: Thu Apr 17 15:01:07 2014
New Revision: 1588272

URL: http://svn.apache.org/r1588272
Log:
Avoid StackOverflowError on non-Windows systems if a file named '\' is encountered when scanning for TLDs.

Modified:
    tomcat/trunk/java/org/apache/catalina/webresources/StandardRoot.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/webresources/StandardRoot.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/webresources/StandardRoot.java?rev=1588272&r1=1588271&r2=1588272&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/webresources/StandardRoot.java (original)
+++ tomcat/trunk/java/org/apache/catalina/webresources/StandardRoot.java Thu Apr 17 15:01:07 2014
@@ -238,7 +238,16 @@ public class StandardRoot extends Lifecy
                     sm.getString("standardRoot.invalidPath", path));
         }
 
-        String result = RequestUtil.normalize(path);
+        String result;
+        if (File.separatorChar == '\\') {
+            // On Windows '\\' is a separator so in case a Windows style
+            // separator has managed to make it into the path, replace it.
+            result = RequestUtil.normalize(path, true);
+        } else {
+            // On UNIX and similar systems, '\\' is a valid file name so do not
+            // convert it to '/'
+            result = RequestUtil.normalize(path, false);
+        }
         if (result == null || result.length() == 0 || !result.startsWith("/")) {
             throw new IllegalArgumentException(
                     sm.getString("standardRoot.invalidPathNormal", path, result));

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1588272&r1=1588271&r2=1588272&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Thu Apr 17 15:01:07 2014
@@ -116,6 +116,11 @@
         <code>StackOverflowError</code> is not treated as a fatal error and can
         handled and/or logged as required. (markt)
       </fix>
+      <fix>
+        <bug>56409</bug>: Avoid <code>StackOverflowError</code> on non-Windows
+        systems if a file named <code>\</code> is encountered when scanning for
+        TLDs. (mark)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org