commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Yanzin (JIRA)" <j...@apache.org>
Subject [jira] [Created] (NET-610) FTPClient.mlistFile incorrectly handles MLST reply
Date Mon, 06 Feb 2017 10:51:41 GMT
Sergey Yanzin created NET-610:
---------------------------------

             Summary: FTPClient.mlistFile incorrectly handles MLST reply
                 Key: NET-610
                 URL: https://issues.apache.org/jira/browse/NET-610
             Project: Commons Net
          Issue Type: Bug
          Components: FTP
    Affects Versions: 3.5
         Environment: using some FTP-server incorrectly releasing RFC 3659. For example xlight
ftp server (https://www.xlightftpd.com/)
            Reporter: Sergey Yanzin
             Fix For: 3.6


By RFC 3659 server must start fact with space character. But some inaccurate realisations
reply without starting space.
But org.apache.commons.net.ftp.FTPClient.mlistFile() skips leading character even it is not
a space:
    public FTPFile mlistFile(String pathname) throws IOException
    {
        boolean success = FTPReply.isPositiveCompletion(sendCommand(FTPCmd.MLST, pathname));
        if (success){
            String entry = getReplyStrings()[1].substring(1); // skip leading space for parser
            return MLSxEntryParser.parseEntry(entry);
        } else {
            return null;
        }
    }


I think it is wrong. The method should throw exception, if first character is not a space.
Or does not remove starting char (and should be some option responsible for that behaviour)
if it is not a space.

my workaround in overriden method:
    public FTPFile mlistFile(String pathname) throws IOException {
        final boolean success = FTPReply.isPositiveCompletion(sendCommand(FTPCmd.MLST, pathname));
        if (success) {
            final String reply = getReplyStrings()[1];
            final String entry = reply.charAt(0) == ' ' ? reply.substring(1) : reply;
            return MLSxEntryParser.parseEntry(entry);
        } else {
            return null;
        }
    }




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message