summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2018-01-12 12:56:57 +0000
committerPatrick Steinhardt <ps@pks.im>2018-01-12 13:12:37 +0000
commit90f81f9fdc6d87c4ca75e4f065e1eb4818c99674 (patch)
treefa0604e10c29a782e6a10934276ca074e2840330
parent093e671ee8fb824e3e40677ed7440dba72483fe1 (diff)
downloadlibgit2-90f81f9fdc6d87c4ca75e4f065e1eb4818c99674.tar.gz
transports: local: fix memory leak in reference walk
Upon downloading the pack file, the local transport will iterate through every reference using `git_reference_foreach`. The function is a bit tricky though in that it requires the passed callback to free the references, which does not currently happen. Fix the memory leak by freeing all passed references in the callback.
-rw-r--r--src/transports/local.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/transports/local.c b/src/transports/local.c
index ae117db29..740cf36a9 100644
--- a/src/transports/local.c
+++ b/src/transports/local.c
@@ -519,6 +519,8 @@ static int foreach_reference_cb(git_reference *reference, void *payload)
error = 0;
}
+ git_reference_free(reference);
+
return error;
}