From add8e8cee5054734cb19d918f83bcee649aab326 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Thu, 14 Feb 2008 23:25:33 +0000 Subject: [PATCH] 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 --- http-push.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/http-push.c b/http-push.c index b2b410df9..386b806f3 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)) { -- 2.30.2