From 5f0ae7a0626cbe70944c67065292cbb056d0a7c9 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 30 Sep 2010 23:08:37 +0200 Subject: [PATCH] SFTP: avoid downloading negative sizes! It is still not clarified exactly why this happens, but libssh2 sometimes report a negative file size for the remote SFTP file and that deeply confuses libcurl (or crashes it) so this precaution is added to avoid badness. Reported by: Ernest Beinrohr Bug: http://curl.haxx.se/bug/view.cgi?id=3076430 --- lib/ssh.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/ssh.c b/lib/ssh.c index 06fd43999..026212103 100644 --- a/lib/ssh.c +++ b/lib/ssh.c @@ -1911,9 +1911,12 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) data->req.maxdownload = -1; } else { - curl_off_t size; + curl_off_t size = attrs.filesize; - size = attrs.filesize; + if(size < 0) { + failf(data, "Bad file size (%" FORMAT_OFF_T ")", size); + return CURLE_BAD_DOWNLOAD_RESUME; + } if(conn->data->state.use_range) { curl_off_t from, to; char *ptr;