[
https://issues.apache.org/jira/browse/NET-492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13529920#comment-13529920
]
Sebb commented on NET-492:
--------------------------
Hopefully, this now fixes the issue:
URL: http://svn.apache.org/viewvc?rev=1420638&view=rev
Log:
NET-492 FTPClient.printWorkingDirectory() incorrectly parses certain valid PWD
command results
Modified:
commons/proper/net/trunk/src/main/java/org/apache/commons/net/ftp/FTPClient.java
This fix will fail to extract the path correctly if the commentary contains a
quote followed by a space.
Just realised it will also fail to detect a comment followed by trailing quote.
Looks like one needs to detect the trailing path quote by looking for the first
un-doubled quote. Drat.
> FTPClient.printWorkingDirectory() incorrectly parses certain valid PWD
> command results
> --------------------------------------------------------------------------------------
>
> Key: NET-492
> URL: https://issues.apache.org/jira/browse/NET-492
> Project: Commons Net
> Issue Type: Bug
> Components: FTP
> Affects Versions: 3.2
> Reporter: Tomasz Jedrzejewski
> Priority: Minor
>
> The new implementation of FTPClient.printWorkingDirectory() which tries to
> follow RFC959 is invalid and can return unescaped or invalid path in certain
> circumstances. According to the commentary, the author interpreted the RFC
> that the output is always constructed in the following way:
> 257<space>"<directory-name>"<space><commentary>
> Where any double quotes within the directory name are doubled.
> First issue: the RFC does not state that the output for PWD looks exactly
> like this, but that the reply code is the same, as for MKD. Especially, PWD
> does not return any commentary, and VSFTPD server (which I'm trying to talk
> to) does not print out the terminating space, but ends up the output on the
> last double quote. The algorithm uses the following code to detect the end of
> the quoted path:
> int end = reply.lastIndexOf("\" ");
> If there is no terminating space, the last double quote cannot be found, and
> as a result, the method returns the unescaped directory name:
> "/foo"
> instead of
> /foo
> Second issue: the current implementation would not work in case of the
> following directory:
> /Foo/Bar" /Joe
> PWD command output:
> 257 "/Foo/Bar"" /Joe"
> Value returned by printWorkingDirectory():
> /Foo/Bar"
> Note to the administrators: the problem has been found in commons-net 3.2
> version, but JIRA claims it is unreleased and does not allow me to choose it.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira