diff options
author | Jaikiran Pai <jaikiran@apache.org> | 2018-11-04 09:51:55 +0530 |
---|---|---|
committer | Jaikiran Pai <jaikiran@apache.org> | 2018-11-04 09:59:47 +0530 |
commit | 8cc8feebb0581bbcce5d745c8283c231db715d5a (patch) | |
tree | 72cc17513e23efef2812543b62144a690514d3ad | |
parent | 506c3ab47a1d69ecff691cc535ae8368d0aeb1db (diff) | |
download | ant-8cc8feebb0581bbcce5d745c8283c231db715d5a.tar.gz |
Revert "bz-62849 Check for filesystem loops due to symbolic links, in DirectoryScanner and Delete task" since it causes a regression that's exposed by the dirscanner-symlinks-test.xml antunit testcase
This reverts commit 05bfffa247c470d12a5b93326a05d3fd0d890ce0 and 506c3ab47a1d69ecff691cc535ae8368d0aeb1db.
-rw-r--r-- | CONTRIBUTORS | 1 | ||||
-rw-r--r-- | WHATSNEW | 5 | ||||
-rw-r--r-- | contributors.xml | 4 | ||||
-rw-r--r-- | src/etc/testcases/core/directoryscanner.xml | 5 | ||||
-rw-r--r-- | src/main/org/apache/tools/ant/DirectoryScanner.java | 12 | ||||
-rw-r--r-- | src/main/org/apache/tools/ant/taskdefs/Delete.java | 15 | ||||
-rw-r--r-- | src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java | 14 |
7 files changed, 1 insertions, 55 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 7d4a3fd69..7005c7562 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -263,7 +263,6 @@ Matthew Kuperus Heun Matthew Watson Matthew Yanos Matthias Bhend -Michael Barker Michael Bayne Michael Clarke Michael Davey @@ -16,11 +16,6 @@ Fixed bugs: an incorrect compression level for a zip entry. This is now fixed. Bugzilla Report 62686 - * A filesystem "loop" caused due to symbolic links could trigger an - out of memory error in the org.apache.tools.ant.DirectoryScanner - This has now been fixed. - Bugzilla Report 62849 - Other changes: -------------- * generatekey task now supports SubjectAlternativeName during key diff --git a/contributors.xml b/contributors.xml index 88b7a8c1e..a62b1d477 100644 --- a/contributors.xml +++ b/contributors.xml @@ -1075,10 +1075,6 @@ </name> <name> <first>Michael</first> - <last>Barker</last> - </name> - <name> - <first>Michael</first> <last>Bayne</last> </name> <name> diff --git a/src/etc/testcases/core/directoryscanner.xml b/src/etc/testcases/core/directoryscanner.xml index 71eb88bf7..7e8683a4a 100644 --- a/src/etc/testcases/core/directoryscanner.xml +++ b/src/etc/testcases/core/directoryscanner.xml @@ -38,9 +38,4 @@ <touch file="${output}/alpha/beta/gamma/gamma.xml"/> </target> - <target name="symlink-nested-setup" depends="setUp"> - <symlink link="${output}/alpha/beta/gamma/beta-link" resource="${output}/alpha/beta"/> - <touch file="${output}/alpha/beta/gamma/gamma.xml"/> - </target> - </project> diff --git a/src/main/org/apache/tools/ant/DirectoryScanner.java b/src/main/org/apache/tools/ant/DirectoryScanner.java index 15caa4025..a0e7837e4 100644 --- a/src/main/org/apache/tools/ant/DirectoryScanner.java +++ b/src/main/org/apache/tools/ant/DirectoryScanner.java @@ -1258,18 +1258,6 @@ public class DirectoryScanner final String name = vpath + newFile; final TokenizedPath newPath = new TokenizedPath(path, newFile); final File file = new File(dir, newFile); - - try { - // check if it's a filesystem "loop" due to symbolic links - if (FileUtils.getFileUtils().isLeadingPath(file.getAbsoluteFile(), - dir.getAbsoluteFile(), true)) { - continue; - } - } catch (IOException e) { - System.err.println("Failed to determine if " + file + " causes a " + - "filesystem loop due to symbolic link; continuing"); - } - final String[] children = file.list(); if (children == null || (children.length == 0 && file.isFile())) { if (isIncluded(newPath)) { diff --git a/src/main/org/apache/tools/ant/taskdefs/Delete.java b/src/main/org/apache/tools/ant/taskdefs/Delete.java index fdddbbf2d..f887695b1 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Delete.java +++ b/src/main/org/apache/tools/ant/taskdefs/Delete.java @@ -19,7 +19,6 @@ package org.apache.tools.ant.taskdefs; import java.io.File; -import java.io.IOException; import java.util.Arrays; import java.util.Comparator; import java.util.Iterator; @@ -772,19 +771,7 @@ public class Delete extends MatchingTask { } for (String s : list) { File f = new File(d, s); - - boolean isFsLoop = false; - - try { - isFsLoop = SYMLINK_UTILS.isSymbolicLink(f) && - FileUtils.getFileUtils().isLeadingPath(f.getAbsoluteFile(), - d.getAbsoluteFile(), true); - } catch (IOException e) { - log("Failed to check if " + f + " causes a filesystem loop due to " + - "symbolic link; continuing"); - } - - if (f.isDirectory() && !isFsLoop) { + if (f.isDirectory()) { removeDir(f); } else { log("Deleting " + f.getAbsolutePath(), quiet ? Project.MSG_VERBOSE : verbosity); diff --git a/src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java b/src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java index 2abd94f31..819d4e50e 100644 --- a/src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java +++ b/src/tests/junit/org/apache/tools/ant/DirectoryScannerTest.java @@ -133,20 +133,6 @@ public class DirectoryScannerTest { } @Test - public void testAllowRecursiveSymlinks() { - - assumeTrue("Current system does not support Symlinks", supportsSymlinks); - - buildRule.getProject().executeTarget("symlink-nested-setup"); - DirectoryScanner ds = new DirectoryScanner(); - ds.setBasedir(new File(buildRule.getProject().getProperty("output"))); - ds.setIncludes(new String[] {"alpha/beta/gamma/"}); - ds.scan(); - compareFiles(ds, new String[] {"alpha/beta/gamma/gamma.xml"}, - new String[] {"alpha/beta/gamma"}); - } - - @Test public void testProhibitSymlinks() { assumeTrue("Current system does not support Symlinks", supportsSymlinks); |