sendrecv: treat all negative values from send/recv as errors

For example the libssh2 based functions return other negative
values than -1 to signal errors and it is important that we catch
them properly. Right before this, various failures from libssh2
were treated as negative download amounts which caused havoc.
This commit is contained in:
Daniel Stenberg 2010-06-19 00:18:14 +02:00
Родитель e6d85923c1
Коммит 1b15b31c86
1 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -254,8 +254,8 @@ CURLcode Curl_write(struct connectdata *conn,
bytes_written = conn->send[num](conn, num, mem, len, &curlcode);
*written = bytes_written;
if(-1 != bytes_written)
/* we completely ignore the curlcode value when -1 is not returned */
if(bytes_written >= 0)
/* we completely ignore the curlcode value when subzero is not returned */
return CURLE_OK;
/* handle CURLE_AGAIN or a send failure */
@ -577,7 +577,7 @@ CURLcode Curl_read(struct connectdata *conn, /* connection data */
}
nread = conn->recv[num](conn, num, buffertofill, bytesfromsocket, &curlcode);
if(nread == -1)
if(nread < 0)
return curlcode;
if(pipelining) {