diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-10-16 11:44:37 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-10-16 11:44:37 -0700 |
commit | 053a08f5bba3444d40516baf30a5d61e42e4fb93 (patch) | |
tree | 669afbf17fee7188525b8d01f7e339d3f7101904 | |
parent | 9306b5b9a33185e7867202718162d8a38d5627ab (diff) | |
parent | 188923f0d1c8148415b3173986cd1e21871c947e (diff) | |
download | git-053a08f5bba3444d40516baf30a5d61e42e4fb93.tar.gz |
Merge branch 'jk/maint-http-half-auth-push'
Fixes a regression in maint-1.7.11 (v1.7.11.7), maint (v1.7.12.1)
and master (v1.8.0-rc0).
* jk/maint-http-half-auth-push:
http: fix segfault in handle_curl_result
-rw-r--r-- | http.c | 7 | ||||
-rw-r--r-- | http.h | 3 | ||||
-rw-r--r-- | remote-curl.c | 2 |
3 files changed, 6 insertions, 6 deletions
@@ -745,10 +745,9 @@ char *get_remote_object_url(const char *url, const char *hex, return strbuf_detach(&buf, NULL); } -int handle_curl_result(struct active_request_slot *slot) +int handle_curl_result(struct active_request_slot *slot, + struct slot_results *results) { - struct slot_results *results = slot->results; - if (results->curl_result == CURLE_OK) { credential_approve(&http_auth); return HTTP_OK; @@ -822,7 +821,7 @@ static int http_request(const char *url, void *result, int target, int options) if (start_active_slot(slot)) { run_active_slot(slot); - ret = handle_curl_result(slot); + ret = handle_curl_result(slot, &results); } else { error("Unable to start HTTP request for %s", url); ret = HTTP_START_FAILED; @@ -78,7 +78,8 @@ extern int start_active_slot(struct active_request_slot *slot); extern void run_active_slot(struct active_request_slot *slot); extern void finish_active_slot(struct active_request_slot *slot); extern void finish_all_active_slots(void); -extern int handle_curl_result(struct active_request_slot *slot); +extern int handle_curl_result(struct active_request_slot *slot, + struct slot_results *results); #ifdef USE_CURL_MULTI extern void fill_active_slots(void); diff --git a/remote-curl.c b/remote-curl.c index 10fa8f1ac5..42716c59cf 100644 --- a/remote-curl.c +++ b/remote-curl.c @@ -356,7 +356,7 @@ static int run_slot(struct active_request_slot *slot) slot->curl_result = curl_easy_perform(slot->curl); finish_active_slot(slot); - err = handle_curl_result(slot); + err = handle_curl_result(slot, &results); if (err != HTTP_OK && err != HTTP_REAUTH) { error("RPC failed; result=%d, HTTP code = %ld", results.curl_result, results.http_code); |