Commit 90f81f9fdc6d87c4ca75e4f065e1eb4818c99674

Patrick Steinhardt 2018-01-12T12:56:57

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.

1
2
3
4
5
6
7
8
9
10
11
12
13
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;
 }