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.
diff --git a/src/transports/local.c b/src/transports/local.c
index ae117db..740cf36 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;
}