From: Patrick Monnerat Date: Mon, 12 Feb 2018 02:38:18 +0000 (+0100) Subject: http_chunks: don't write chunks twice with CURLOPT_HTTP_TRANSFER_DECODING on X-Git-Tag: curl-7_59_0~89 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=155ea88184d7e4c456b38c50cb057fcbc65103f6;p=thirdparty%2Fcurl.git http_chunks: don't write chunks twice with CURLOPT_HTTP_TRANSFER_DECODING on Bug: #2303 Reported-By: Henry Roeland --- diff --git a/lib/http_chunks.c b/lib/http_chunks.c index 2d9999f182..8368eeca65 100644 --- a/lib/http_chunks.c +++ b/lib/http_chunks.c @@ -178,15 +178,15 @@ CHUNKcode Curl_httpchunk_read(struct connectdata *conn, piece = curlx_sotouz((ch->datasize >= length)?length:ch->datasize); /* Write the data portion available */ - if(conn->data->set.http_ce_skip || !k->writer_stack) { - if(!k->ignorebody) + if(!conn->data->set.http_te_skip && !k->ignorebody) { + if(!conn->data->set.http_ce_skip && k->writer_stack) + result = Curl_unencode_write(conn, k->writer_stack, datap, piece); + else result = Curl_client_write(conn, CLIENTWRITE_BODY, datap, piece); - } - else - result = Curl_unencode_write(conn, k->writer_stack, datap, piece); - if(result) - return CHUNKE_WRITE_ERROR; + if(result) + return CHUNKE_WRITE_ERROR; + } *wrote += piece; ch->datasize -= piece; /* decrease amount left to expect */