From: Johannes Schindelin Date: Thu, 14 Feb 2008 23:25:33 +0000 (+0000) Subject: http-push: avoid invalid memory accesses X-Git-Tag: v1.5.4.4~35^2~2 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/add8e8cee5054734cb19d918f83bcee649aab326 http-push: avoid invalid memory accesses Before objects are sent, the respective ref is locked. However, without this patch, the lock is lifted before the last object for that ref was sent. As a consequence, the lock data was accessed after the lock structure was free()d. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- diff --git a/http-push.c b/http-push.c index b2b410df90..386b806f3e 100644 --- a/http-push.c +++ b/http-push.c @@ -2398,7 +2398,12 @@ int main(int argc, char **argv) fill_active_slots(); add_fill_function(NULL, fill_active_slot); #endif - finish_all_active_slots(); + do { + finish_all_active_slots(); +#ifdef USE_CURL_MULTI + fill_active_slots(); +#endif + } while (request_queue_head && !aborted); /* Update the remote branch if all went well */ if (aborted || !update_remote(ref->new_sha1, ref_lock)) {