From 1b15b31c8631a4a271f15c4261331dcebec9ba47 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 19 Jun 2010 00:18:14 +0200 Subject: 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. --- lib/sendf.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/sendf.c') diff --git a/lib/sendf.c b/lib/sendf.c index 94bcb9c78..b73c22438 100644 --- a/lib/sendf.c +++ b/lib/sendf.c @@ -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) { -- cgit v1.2.3