mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
Fixed a bug that caused a few bytes of garbage to be sent after a
curl_easy_pause() during a chunky upload. Reported by Steve Roskowski.
This commit is contained in:
parent
89d6f580dc
commit
4fef0d4f14
4
CHANGES
4
CHANGES
@ -6,6 +6,10 @@
|
|||||||
|
|
||||||
Changelog
|
Changelog
|
||||||
|
|
||||||
|
Daniel Fandrich (29 Oct 2008)
|
||||||
|
- Fixed a bug that caused a few bytes of garbage to be sent after a
|
||||||
|
curl_easy_pause() during a chunky upload. Reported by Steve Roskowski.
|
||||||
|
|
||||||
Daniel Fandrich (28 Oct 2008)
|
Daniel Fandrich (28 Oct 2008)
|
||||||
- Changed the "resolve" test precheck program to verify that an IPv6 socket
|
- Changed the "resolve" test precheck program to verify that an IPv6 socket
|
||||||
can be created before resolving the IPv6 name. In the context of running
|
can be created before resolving the IPv6 name. In the context of running
|
||||||
|
@ -40,6 +40,7 @@ This release includes the following bugfixes:
|
|||||||
o CURLINFO_REDIRECT_URL memory leak and wrong-doing
|
o CURLINFO_REDIRECT_URL memory leak and wrong-doing
|
||||||
o case insensitive string matching works in Turkish too
|
o case insensitive string matching works in Turkish too
|
||||||
o Solaris builds get _REENTRANT defined properly and work again
|
o Solaris builds get _REENTRANT defined properly and work again
|
||||||
|
o Garbage sent on chunky upload after curl_easy_pause()
|
||||||
|
|
||||||
This release includes the following known bugs:
|
This release includes the following known bugs:
|
||||||
|
|
||||||
@ -56,6 +57,6 @@ advice from friends like these:
|
|||||||
Linus Nielsen Feltzing, Martin Drasar, Stefan Krause, Dmitry Kurochkin,
|
Linus Nielsen Feltzing, Martin Drasar, Stefan Krause, Dmitry Kurochkin,
|
||||||
Mike Revi, Andres Garcia, Michael Goffioul, Markus Moeller, Rob Crittenden,
|
Mike Revi, Andres Garcia, Michael Goffioul, Markus Moeller, Rob Crittenden,
|
||||||
Jamie Lokier, Emanuele Bovisio, Maxim Ivanov, Ian Lynagh, Daniel Egger,
|
Jamie Lokier, Emanuele Bovisio, Maxim Ivanov, Ian Lynagh, Daniel Egger,
|
||||||
Igor Novoseltsev, John Wilkinson, Pascal Terjan
|
Igor Novoseltsev, John Wilkinson, Pascal Terjan, Steve Roskowski
|
||||||
|
|
||||||
Thanks! (and sorry if I forgot to mention someone)
|
Thanks! (and sorry if I forgot to mention someone)
|
||||||
|
@ -132,7 +132,7 @@ CURLcode Curl_fillreadbuffer(struct connectdata *conn, int bytes, int *nreadp)
|
|||||||
if(data->req.upload_chunky) {
|
if(data->req.upload_chunky) {
|
||||||
/* if chunked Transfer-Encoding */
|
/* if chunked Transfer-Encoding */
|
||||||
buffersize -= (8 + 2 + 2); /* 32bit hex + CRLF + CRLF */
|
buffersize -= (8 + 2 + 2); /* 32bit hex + CRLF + CRLF */
|
||||||
data->req.upload_fromhere += 10; /* 32bit hex + CRLF */
|
data->req.upload_fromhere += (8 + 2); /* 32bit hex + CRLF */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* this function returns a size_t, so we typecast to int to prevent warnings
|
/* this function returns a size_t, so we typecast to int to prevent warnings
|
||||||
@ -149,6 +149,10 @@ CURLcode Curl_fillreadbuffer(struct connectdata *conn, int bytes, int *nreadp)
|
|||||||
struct SingleRequest *k = &data->req;
|
struct SingleRequest *k = &data->req;
|
||||||
/* CURL_READFUNC_PAUSE pauses read callbacks that feed socket writes */
|
/* CURL_READFUNC_PAUSE pauses read callbacks that feed socket writes */
|
||||||
k->keepon |= KEEP_WRITE_PAUSE; /* mark socket send as paused */
|
k->keepon |= KEEP_WRITE_PAUSE; /* mark socket send as paused */
|
||||||
|
if(data->req.upload_chunky) {
|
||||||
|
/* Back out the preallocation done above */
|
||||||
|
data->req.upload_fromhere -= (8 + 2);
|
||||||
|
}
|
||||||
*nreadp = 0;
|
*nreadp = 0;
|
||||||
return CURLE_OK; /* nothing was read */
|
return CURLE_OK; /* nothing was read */
|
||||||
}
|
}
|
||||||
@ -168,7 +172,7 @@ CURLcode Curl_fillreadbuffer(struct connectdata *conn, int bytes, int *nreadp)
|
|||||||
data->req.upload_fromhere -= hexlen;
|
data->req.upload_fromhere -= hexlen;
|
||||||
nread += hexlen;
|
nread += hexlen;
|
||||||
|
|
||||||
/* copy the prefix to the buffer */
|
/* copy the prefix to the buffer, leaving out the NUL */
|
||||||
memcpy(data->req.upload_fromhere, hexbuffer, hexlen);
|
memcpy(data->req.upload_fromhere, hexbuffer, hexlen);
|
||||||
|
|
||||||
/* always append CRLF to the data */
|
/* always append CRLF to the data */
|
||||||
|
Loading…
Reference in New Issue
Block a user