From 1befebc950d7e4fb1ae6ae4e9b6b284ff4a04f89 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 15 Dec 2014 22:52:30 +0100 Subject: [PATCH] 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 --- lib/ssh.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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;