summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2013-06-24 14:43:33 -0700
committerRussell Belfer <rb@github.com>2013-06-24 14:43:33 -0700
commit5b4a70836a7d10dcc7b78d2748e6a48ae40eb37b (patch)
tree424c10383fd1aff3759eff1cb0d1b9845af5f9bc
parent12212258ec0e1ac663122654868d75ba97d32c7f (diff)
parent8c510b8313bd933e6d3b44f3ce88999d349a8dd7 (diff)
downloadlibgit2-5b4a70836a7d10dcc7b78d2748e6a48ae40eb37b.tar.gz
Merge pull request #1675 from arthurschreiber/fix-leak-in-local-transport
Fix a leak in the local transport code.
-rw-r--r--src/transports/local.c18
1 files changed, 9 insertions, 9 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,25 +586,23 @@ static int local_close(git_transport *transport)
t->url = NULL;
}
+ git_vector_foreach(&t->refs, i, head) {
+ git__free(head->name);
+ git__free(head);
+ }
+
+ git_vector_free(&t->refs);
+
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);
- }
-
- git_vector_free(&t->refs);
-
/* Free the transport */
git__free(t);
}