aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/multi.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/multi.c b/lib/multi.c
index 706df2398..825f77740 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -1202,8 +1202,9 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
}
else {
/* Perform the protocol's DO action */
- easy->result = Curl_do(&easy->easy_conn,
- &dophase_done);
+ easy->result = Curl_do(&easy->easy_conn, &dophase_done);
+
+ /* When Curl_do() returns failure, easy->easy_conn might be NULL! */
if(CURLE_OK == easy->result) {
if(!dophase_done) {
@@ -1292,7 +1293,8 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
else {
/* failure detected */
Curl_posttransfer(data);
- Curl_done(&easy->easy_conn, easy->result, FALSE);
+ if(easy->easy_conn)
+ Curl_done(&easy->easy_conn, easy->result, FALSE);
disconnect_conn = TRUE;
}
}