commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sebb (JIRA)" <>
Subject [jira] [Commented] (NET-492) FTPClient.printWorkingDirectory() incorrectly parses certain valid PWD command results
Date Wed, 12 Dec 2012 13:23:22 GMT


Sebb commented on NET-492:

Hopefully this is now sufficient!

Passes all the test cases (plus a couple of invalid ones).

If you want to try the SNAPSHOT build it should soon be available from the ASF snapshot repo

If the jar contains the class FTPClientTest then it includes the fix below.

Note that SNAPSHOT builds have not undergone any QA and are not formal ASF releases, so use
at your own risk!

NET-492 FTPClient.printWorkingDirectory() incorrectly parses certain valid PWD command results
Rework to look for lone trailing quote

 (with props)

> FTPClient.printWorkingDirectory() incorrectly parses certain valid PWD command results
> --------------------------------------------------------------------------------------
>                 Key: NET-492
>                 URL:
>             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:

View raw message