summaryrefslogtreecommitdiff
path: root/lib/url.c
diff options
context:
space:
mode:
authorAnders Bakken <agbakken@gmail.com>2016-03-01 14:52:38 -0800
committerJay Satiro <raysatiro@yahoo.com>2016-03-01 18:55:04 -0500
commit3c2ef2a610814028a8dc9469b350d291327c673f (patch)
tree718c6fadc4fb4d80b128bd0deb42a293e621888f /lib/url.c
parentd678bd6f60219ad95f709587ddfee2d4943abba1 (diff)
downloadcurl-3c2ef2a610814028a8dc9469b350d291327c673f.tar.gz
url: if Curl_done is premature then pipeline not in use
Prevent a crash if 2 (or more) requests are made to the same host and pipelining is enabled and the connection does not complete. Bug: https://github.com/curl/curl/pull/690
Diffstat (limited to 'lib/url.c')
-rw-r--r--lib/url.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/url.c b/lib/url.c
index bf293a4d9..9ffca16d1 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -6157,7 +6157,8 @@ CURLcode Curl_done(struct connectdata **connp,
result = CURLE_ABORTED_BY_CALLBACK;
}
- if((conn->send_pipe->size + conn->recv_pipe->size != 0 &&
+ if((!premature &&
+ conn->send_pipe->size + conn->recv_pipe->size != 0 &&
!data->set.reuse_forbid &&
!conn->bits.close)) {
/* Stop if pipeline is not empty and we do not have to close