Commit 1b15b31c authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

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.
parent e6d85923
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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) {