You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by jg...@apache.org on 2006/08/17 22:23:44 UTC

svn commit: r432379 - in /ant/core/trunk: WHATSNEW src/main/org/apache/tools/ant/util/FileUtils.java src/testcases/org/apache/tools/ant/util/FileUtilsTest.java

Author: jglick
Date: Thu Aug 17 13:23:44 2006
New Revision: 432379

URL: http://svn.apache.org/viewvc?rev=432379&view=rev
Log:
#40281: "Cannot resolve path" error thrown gratuitously.

Modified:
    ant/core/trunk/WHATSNEW
    ant/core/trunk/src/main/org/apache/tools/ant/util/FileUtils.java
    ant/core/trunk/src/testcases/org/apache/tools/ant/util/FileUtilsTest.java

Modified: ant/core/trunk/WHATSNEW
URL: http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=432379&r1=432378&r2=432379&view=diff
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Thu Aug 17 13:23:44 2006
@@ -102,6 +102,10 @@
 Fixed bugs:
 -----------
 
+* The build could be halted if a file path contained more ".." components than
+  the actual depth of the preceding path. Now such paths are left alone (meaning
+  they will likely be treated as nonexistent files). Bugzilla Report 40281.
+
 * Converting a <dirset> to a string was broken. Bugzilla Report 39683.
 
 * Manifests have improved line length handling, taking care of encoding.

Modified: ant/core/trunk/src/main/org/apache/tools/ant/util/FileUtils.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/util/FileUtils.java?rev=432379&r1=432378&r2=432379&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/util/FileUtils.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/util/FileUtils.java Thu Aug 17 13:23:44 2006
@@ -674,7 +674,8 @@
                 continue;
             } else if ("..".equals(thisToken)) {
                 if (s.size() < 2) {
-                    throw new BuildException("Cannot resolve path " + path);
+                    // Cannot resolve it, so skip it.
+                    return new File(path);
                 }
                 s.pop();
             } else { // plain component

Modified: ant/core/trunk/src/testcases/org/apache/tools/ant/util/FileUtilsTest.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/testcases/org/apache/tools/ant/util/FileUtilsTest.java?rev=432379&r1=432378&r2=432379&view=diff
==============================================================================
--- ant/core/trunk/src/testcases/org/apache/tools/ant/util/FileUtilsTest.java (original)
+++ ant/core/trunk/src/testcases/org/apache/tools/ant/util/FileUtilsTest.java Thu Aug 17 13:23:44 2006
@@ -193,12 +193,9 @@
         assertEquals(localize("/1/2/3/4"),
                      FILE_UTILS.resolveFile(new File(localize("/1/2/3")), "..\\../5/..\\./2/./3/6\\../4").getPath());
 
-        try {
-            FILE_UTILS.resolveFile(new File(localize("/1")), "../../b");
-            fail("successfully crawled beyond the filesystem root");
-        } catch (BuildException e) {
-            // Expected Exception caught
-        }
+        assertEquals("meaningless result but no exception",
+                new File(localize("/1/../../b")),
+                FILE_UTILS.resolveFile(new File(localize("/1")), "../../b"));
 
     }
 
@@ -315,12 +312,9 @@
             // Expected exception caught
         }
 
-        try {
-            FILE_UTILS.normalize(localize("/1/../../b"));
-            fail("successfully crawled beyond the filesystem root");
-        } catch (BuildException e) {
-            // Expected exception caught
-        }
+        assertEquals("will not go outside FS root (but will not throw an exception either)",
+                new File(localize("/1/../../b")),
+                FILE_UTILS.normalize(localize("/1/../../b")));
     }
 
     /**



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