summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNelson Elhage <nelhage@nelhage.com>2018-06-24 22:22:40 +0000
committerNelson Elhage <nelhage@nelhage.com>2018-06-25 02:17:27 +0000
commitcf33592876b2aa0a575c08b782313ba0a2c76f8f (patch)
tree0d252ca27e76e2dc6b18db333cc08badc559e7d7
parente31c450b7dd1b71ce09df5980e6df8229d934fdb (diff)
downloadlibgit2-cf33592876b2aa0a575c08b782313ba0a2c76f8f.tar.gz
git_smart__update_heads: free the old symref_target
-rw-r--r--src/transports/smart.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/transports/smart.c b/src/transports/smart.c
index 79b5a3e6d..e83a3c5d8 100644
--- a/src/transports/smart.c
+++ b/src/transports/smart.c
@@ -167,8 +167,10 @@ int git_smart__update_heads(transport_smart *t, git_vector *symrefs)
git_vector_foreach(symrefs, j, spec) {
git_buf_clear(&buf);
if (git_refspec_src_matches(spec, ref->head.name) &&
- !(error = git_refspec_transform(&buf, spec, ref->head.name)))
+ !(error = git_refspec_transform(&buf, spec, ref->head.name))) {
+ git__free(ref->head.symref_target);
ref->head.symref_target = git_buf_detach(&buf);
+ }
}
git_buf_dispose(&buf);