[ 
https://issues.apache.org/jira/browse/SSHD-730?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16370750#comment-16370750
 ] 

Guillaume Nodet commented on SSHD-730:
--------------------------------------

Not sure about using the underlying {{FileSystem}}, but I have at least the 
following patch:
{code:java}
diff --git 
a/sshd-core/src/main/java/org/apache/sshd/common/util/SelectorUtils.java 
b/sshd-core/src/main/java/org/apache/sshd/common/util/SelectorUtils.java
index 7fa19279..f44f7e72 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/SelectorUtils.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/SelectorUtils.java
@@ -557,9 +557,9 @@ public final class SelectorUtils {
                 tokens.remove(i);
                 removedDots++;
             } else if (t.equals("..")) {
-                tokens.remove(i);
-                removedDots++;
                 if (i >= 1) {
+                    tokens.remove(i);
+                    removedDots++;
                     tokens.remove(--i);
                     removedDots++;
                 }
diff --git 
a/sshd-core/src/test/java/org/apache/sshd/common/util/SelectorUtilsTest.java 
b/sshd-core/src/test/java/org/apache/sshd/common/util/SelectorUtilsTest.java
index 51066141..8eb5737c 100644
--- a/sshd-core/src/test/java/org/apache/sshd/common/util/SelectorUtilsTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/common/util/SelectorUtilsTest.java
@@ -148,4 +148,10 @@ public class SelectorUtilsTest extends BaseTestSupport {
         String actual = SelectorUtils.normalizePath(path, "/");
         assertEquals("Mismatched result", "/" + path, actual);
     }
+
+    @Test
+    public void testNormalize() {
+        assertEquals("foo/bar", 
SelectorUtils.normalizePath("./baz/../foo/./bar", "/"));
+        assertEquals("../foo/bar", 
SelectorUtils.normalizePath("../baz/../foo/./bar", "/"));
+    }
 }
{code}



> Relative symbolic links with .. is not resolved properly by sftp readLink
> -------------------------------------------------------------------------
>
>                 Key: SSHD-730
>                 URL: https://issues.apache.org/jira/browse/SSHD-730
>             Project: MINA SSHD
>          Issue Type: Bug
>    Affects Versions: 1.1.0, 1.2.0, 1.3.0
>            Reporter: Lukas Waldmann
>            Assignee: Goldstein Lyor
>            Priority: Minor
>
> Using sftp to resolve symbolic links doesn't return proper resolution in case 
> symbolic link contains ..
> Since version 1.1 the sendLink function of SftpSubsystem uses
> normalizedPath = SelectorUtils.normalizePath(unixPath, "/");
> to normalize path
> This function however return invalid path in case link contains ".."
> So for example if link is "../test/file" than normalizePath returns 
> "test/file" which is invalid because in can not be resolved properly in the 
> context of the current directory which symbolic link is referring to.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to