From: Daniel Stenberg Date: Mon, 15 Dec 2014 21:52:30 +0000 (+0100) Subject: SFTP: work-around servers that return zero size on STAT X-Git-Tag: curl-7_40_0~131 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1befebc950d7e4fb1ae6ae4e9b6b284ff4a04f89;p=curl SFTP: work-around servers that return zero size on STAT Bug: http://curl.haxx.se/mail/lib-2014-12/0103.html Pathed-by: Marc Renault --- diff --git a/lib/ssh.c b/lib/ssh.c index ba26eef72..d7e88c6f7 100644 --- a/lib/ssh.c +++ b/lib/ssh.c @@ -2107,10 +2107,14 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) if(rc == LIBSSH2_ERROR_EAGAIN) { break; } - else if(rc) { + else if(rc || + !(attrs.flags & LIBSSH2_SFTP_ATTR_SIZE) || + (attrs.filesize == 0)) { /* * libssh2_sftp_open() didn't return an error, so maybe the server * just doesn't support stat() + * OR the server doesn't return a file size with a stat() + * OR file size is 0 */ data->req.size = -1; data->req.maxdownload = -1;