From: Daniel Stenberg Date: Sat, 13 Jan 2007 23:33:21 +0000 (+0000) Subject: fixed bad variable use when getting the size which we should read when X-Git-Tag: curl-7_16_1~72 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=869d65337ecc9e119a32a9b17b624e8a0c7d263c;p=curl fixed bad variable use when getting the size which we should read when attempting not to read data that might belong to the next response (if pipelining) --- diff --git a/lib/transfer.c b/lib/transfer.c index 3004d14c3..ca112331e 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2006, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2007, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -347,8 +347,14 @@ CURLcode Curl_readwrite(struct connectdata *conn, size_t bytestoread = buffersize; int readrc; - if (k->size != -1 && !k->header) - bytestoread = (size_t)(k->size - k->bytecount); + if (k->size != -1 && !k->header) { + /* make sure we don't read "too much" if we can help it since we + might be pipelining and then someone else might want to read what + follows! */ + curl_off_t totalleft = k->size - k->bytecount; + if(totalleft < bytestoread) + bytestoread = (size_t)totalleft; + } /* receive data from the network! */ readrc = Curl_read(conn, conn->sockfd, k->buf, bytestoread, &nread);