Commit 9840dad2 by Edward Thomson Committed by GitHub

Merge pull request #4368 from pks-t/pks/smart-negotiate-revwalk-memleak

transports: smart: fix memory leak when skipping symbolic refs
parents fb11544b 7cb705cb
...@@ -273,7 +273,7 @@ static int fetch_setup_walk(git_revwalk **out, git_repository *repo) ...@@ -273,7 +273,7 @@ static int fetch_setup_walk(git_revwalk **out, git_repository *repo)
git_revwalk *walk = NULL; git_revwalk *walk = NULL;
git_strarray refs; git_strarray refs;
unsigned int i; unsigned int i;
git_reference *ref; git_reference *ref = NULL;
int error; int error;
if ((error = git_reference_list(&refs, repo)) < 0) if ((error = git_reference_list(&refs, repo)) < 0)
...@@ -285,6 +285,9 @@ static int fetch_setup_walk(git_revwalk **out, git_repository *repo) ...@@ -285,6 +285,9 @@ static int fetch_setup_walk(git_revwalk **out, git_repository *repo)
git_revwalk_sorting(walk, GIT_SORT_TIME); git_revwalk_sorting(walk, GIT_SORT_TIME);
for (i = 0; i < refs.count; ++i) { for (i = 0; i < refs.count; ++i) {
git_reference_free(ref);
ref = NULL;
/* No tags */ /* No tags */
if (!git__prefixcmp(refs.strings[i], GIT_REFS_TAGS_DIR)) if (!git__prefixcmp(refs.strings[i], GIT_REFS_TAGS_DIR))
continue; continue;
...@@ -297,16 +300,13 @@ static int fetch_setup_walk(git_revwalk **out, git_repository *repo) ...@@ -297,16 +300,13 @@ static int fetch_setup_walk(git_revwalk **out, git_repository *repo)
if ((error = git_revwalk_push(walk, git_reference_target(ref))) < 0) if ((error = git_revwalk_push(walk, git_reference_target(ref))) < 0)
goto on_error; goto on_error;
git_reference_free(ref);
} }
git_strarray_free(&refs);
*out = walk; *out = walk;
return 0;
on_error: on_error:
git_revwalk_free(walk); if (error)
git_revwalk_free(walk);
git_reference_free(ref); git_reference_free(ref);
git_strarray_free(&refs); git_strarray_free(&refs);
return error; return error;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment