[PATCH] http-fetch: do not use curl_message after releasing it
From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:42:10
Subsystem:
the rest · Maintainer:
Linus Torvalds
When curl_message is released using curl_multi_remove_handle(), it's contents are undefined. Therefore, get the information before releasing it. Signed-off-by: Johannes Schindelin <redacted> --- http-fetch.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) applies-to: a216f59923735f7680de8b3d9d333dc14de12b77 0516b1524ce60af57bf056f24b29983a70fb113f
diff --git a/http-fetch.c b/http-fetch.c
index b12779d..ea8af1b 100644
--- a/http-fetch.c
+++ b/http-fetch.c@@ -578,6 +578,7 @@ void process_curl_messages(void) while (curl_message != NULL) { if (curl_message->msg == CURLMSG_DONE) { + int curl_result = curl_message->data.result; slot = active_queue_head; while (slot != NULL && slot->curl != curl_message->easy_handle)
@@ -587,7 +588,7 @@ void process_curl_messages(void) active_requests--; slot->done = 1; slot->in_use = 0; - slot->curl_result = curl_message->data.result; + slot->curl_result = curl_result; curl_easy_getinfo(slot->curl, CURLINFO_HTTP_CODE, &slot->http_code);
@@ -599,8 +600,7 @@ void process_curl_messages(void) fprintf(stderr, "Received DONE message for unknown request!\n"); } if (request != NULL) { - request->curl_result = - curl_message->data.result; + request->curl_result = curl_result; request->http_code = slot->http_code; request->slot = NULL; request->state = COMPLETE;
--- 0.99.9.GIT