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
This commit is contained in:
Daniel Stenberg
2014-12-15 22:52:30 +01:00
parent ae56df82c1
commit 1befebc950

View File

@@ -2107,10 +2107,14 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block)
if(rc == LIBSSH2_ERROR_EAGAIN) { if(rc == LIBSSH2_ERROR_EAGAIN) {
break; 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 * libssh2_sftp_open() didn't return an error, so maybe the server
* just doesn't support stat() * 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.size = -1;
data->req.maxdownload = -1; data->req.maxdownload = -1;