- I fixed two cases of missing return code checks when handling chunked
decoding where a write error (or abort return from a callback) didn't stop libcurl's processing.
This commit is contained in:
parent
193d33fd4a
commit
d9023c16ab
4
CHANGES
4
CHANGES
@ -7,6 +7,10 @@
|
||||
Changelog
|
||||
|
||||
Daniel S (2 Jan 2008)
|
||||
- I fixed two cases of missing return code checks when handling chunked
|
||||
decoding where a write error (or abort return from a callback) didn't stop
|
||||
libcurl's processing.
|
||||
|
||||
- I removed the socklen_t use from the public curl/curl.h header and instead
|
||||
made it an unsigned int. The type was only used in the curl_sockaddr struct
|
||||
definition (only used by the curl_opensocket_callback). On all platforms I
|
||||
|
@ -5,7 +5,7 @@
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2007, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
@ -118,8 +118,11 @@ CHUNKcode Curl_httpchunk_read(struct connectdata *conn,
|
||||
|
||||
/* the original data is written to the client, but we go on with the
|
||||
chunk read process, to properly calculate the content length*/
|
||||
if(data->set.http_te_skip && !k->ignorebody)
|
||||
Curl_client_write(conn, CLIENTWRITE_BODY, datap,datalen);
|
||||
if(data->set.http_te_skip && !k->ignorebody) {
|
||||
result = Curl_client_write(conn, CLIENTWRITE_BODY, datap, datalen);
|
||||
if(result)
|
||||
return CHUNKE_WRITE_ERROR;
|
||||
}
|
||||
|
||||
while(length) {
|
||||
switch(ch->state) {
|
||||
@ -362,9 +365,12 @@ CHUNKcode Curl_httpchunk_read(struct connectdata *conn,
|
||||
return(CHUNKE_BAD_CHUNK);
|
||||
}
|
||||
#endif /* CURL_DOES_CONVERSIONS */
|
||||
if( !data->set.http_te_skip )
|
||||
Curl_client_write(conn, CLIENTWRITE_HEADER,
|
||||
if(!data->set.http_te_skip) {
|
||||
result = Curl_client_write(conn, CLIENTWRITE_HEADER,
|
||||
conn->trailer, conn->trlPos);
|
||||
if(result)
|
||||
return CHUNKE_WRITE_ERROR;
|
||||
}
|
||||
}
|
||||
ch->state = CHUNK_TRAILER;
|
||||
conn->trlPos=0;
|
||||
|
Loading…
Reference in New Issue
Block a user