From: Daniel Stenberg Date: Thu, 30 Sep 2010 21:08:37 +0000 (+0200) Subject: SFTP: avoid downloading negative sizes! X-Git-Tag: curl-7_21_2~31 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5f0ae7a0626cbe70944c67065292cbb056d0a7c9;p=curl 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 --- 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;