Commit 1c967df31c9285af6eaea3c462314b4b88c2706a

Carlos Martín Nieto 2013-11-02T00:51:57

remote: fix a couple of leaks

diff --git a/src/fetch.c b/src/fetch.c
index 19afddc..2765918 100644
--- a/src/fetch.c
+++ b/src/fetch.c
@@ -72,7 +72,10 @@ static int filter_wants(git_remote *remote)
 		if ((error = git_refspec__parse(&head, "HEAD", true)) < 0)
 			goto cleanup;
 
-		if ((error = git_refspec__dwim_one(&remote->active_refspecs, &head, &remote->refs)) < 0)
+		error = git_refspec__dwim_one(&remote->active_refspecs, &head, &remote->refs);
+		git_refspec__free(&head);
+
+		if (error < 0)
 			goto cleanup;
 	}
 
diff --git a/src/remote.c b/src/remote.c
index 289ead8..dcadb92 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -726,9 +726,6 @@ int git_remote_download(git_remote *remote)
 
 	assert(remote);
 
-	if (git_vector_init(&refs, 8, remote_head_cmp) < 0)
-		return -1;
-
 	if (git_remote_ls((const git_remote_head ***)&refs.contents, &refs.length, remote) < 0)
 		return -1;
 
@@ -983,9 +980,6 @@ int git_remote_update_tips(git_remote *remote)
 	if (git_refspec__parse(&tagspec, GIT_REFSPEC_TAGS, true) < 0)
 		return -1;
 
-	if (git_vector_init(&refs, 16, NULL) < 0)
-		return -1;
-
 	if ((error = git_remote_ls((const git_remote_head ***)&refs.contents, &refs.length, remote)) < 0)
 		goto out;