From: simon Date: Wed, 20 Jun 2012 17:39:32 +0000 (+0000) Subject: John Hartnup reports that Apache SSHD's SFTP server responds to X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/commitdiff_plain/6df3c104f2ee9429bef67134ec0eedd5cd26cc08 John Hartnup reports that Apache SSHD's SFTP server responds to FXP_READDIR on an empty directory by returning a zero-length list of filenames, instead of the more common response of a list containing just "." and "..". Stop PSFTP failing an assertion when that happens. git-svn-id: svn://svn.tartarus.org/sgt/putty@9569 cda61777-01e9-0310-a592-d414129be87e --- diff --git a/psftp.c b/psftp.c index d7b73812..482d66ee 100644 --- a/psftp.c +++ b/psftp.c @@ -830,7 +830,17 @@ char *sftp_wildcard_get_filename(SftpWildcardMatcher *swcm) printf("%s: reading directory: %s\n", swcm->prefix, fxp_error()); return NULL; - } + } else if (swcm->names->nnames == 0) { + /* + * Another failure mode which we treat as EOF is if + * the server reports success from FXP_READDIR but + * returns no actual names. This is unusual, since + * from most servers you'd expect at least "." and + * "..", but there's nothing forbidding a server from + * omitting those if it wants to. + */ + return NULL; + } swcm->namepos = 0; }