From 8c510b8313bd933e6d3b44f3ce88999d349a8dd7 Mon Sep 17 00:00:00 2001 From: Arthur Schreiber Date: Mon, 24 Jun 2013 21:02:42 +0200 Subject: [PATCH] Fix a leak in the local transport code. --- src/transports/local.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/transports/local.c b/src/transports/local.c index 4bf1c876a..550060958 100644 --- a/src/transports/local.c +++ b/src/transports/local.c @@ -571,6 +571,8 @@ static void local_cancel(git_transport *transport) static int local_close(git_transport *transport) { transport_local *t = (transport_local *)transport; + size_t i; + git_remote_head *head; t->connected = 0; @@ -584,18 +586,6 @@ static int local_close(git_transport *transport) t->url = NULL; } - return 0; -} - -static void local_free(git_transport *transport) -{ - transport_local *t = (transport_local *)transport; - size_t i; - git_remote_head *head; - - /* Close the transport, if it's still open. */ - local_close(transport); - git_vector_foreach(&t->refs, i, head) { git__free(head->name); git__free(head); @@ -603,6 +593,16 @@ static void local_free(git_transport *transport) git_vector_free(&t->refs); + return 0; +} + +static void local_free(git_transport *transport) +{ + transport_local *t = (transport_local *)transport; + + /* Close the transport, if it's still open. */ + local_close(transport); + /* Free the transport */ git__free(t); }