diff options
author | Patrick Steinhardt <ps@pks.im> | 2018-01-12 12:56:57 +0000 |
---|---|---|
committer | Patrick Steinhardt <ps@pks.im> | 2018-01-12 13:12:37 +0000 |
commit | 90f81f9fdc6d87c4ca75e4f065e1eb4818c99674 (patch) | |
tree | fa0604e10c29a782e6a10934276ca074e2840330 | |
parent | 093e671ee8fb824e3e40677ed7440dba72483fe1 (diff) | |
download | libgit2-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.c | 2 |
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; } |