Junk data could get inserted when saving/getting HTTP headers, as discovered
authorDaniel Stenberg <daniel@haxx.se>
Wed, 9 Oct 2002 13:03:51 +0000 (13:03 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 9 Oct 2002 13:03:51 +0000 (13:03 +0000)
by Craig Davison. Now we deal with the 'nread' variable correctly between
each header line.

lib/transfer.c

index d33838ee879b1d75856a73417aeb5e7ae42b0b51..1de4fccef599e4f5c3e1b059067ec9d1d62d7f8c 100644 (file)
@@ -302,6 +302,9 @@ CURLcode Curl_readwrite(struct connectdata *conn,
             break;             /* read more and try again */
           }
 
+          /* decrease the size of the remaining buffer */
+          nread -= (k->end_ptr - k->str)+1; 
+
           k->str = k->end_ptr + 1; /* move past new line */
 
           /*
@@ -696,13 +699,6 @@ CURLcode Curl_readwrite(struct connectdata *conn,
            there might be a non-header part left in the end of the read
            buffer. */
 
-        if (!k->header) {
-          /* starting here, this is not part of the header! */
-
-          /* we subtract the remaining header size from the buffer */
-          nread -= (k->str - k->buf);
-        }
-
       }                        /* end if header mode */
 
       /* This is not an 'else if' since it may be a rest from the header