Commit af8a5c4afbbf686b427349764d9a2315d49f99ad

Stefan Sperling 2021-05-21T20:16:17

plug a memory leak in got_ref_list_free() Code which inserts a reference into a reflist passes ownership of this reference to the list. However, got_ref_list_free() never closed such references, which resulted in a memory leak. ok tracey

1
2
3
4
5
6
7
8
9
10
11
12
diff --git a/lib/reference.c b/lib/reference.c
index 4b530db..bd14fc8 100644
--- a/lib/reference.c
+++ b/lib/reference.c
@@ -1060,6 +1060,7 @@ got_ref_list_free(struct got_reflist_head *refs)
 
 	while ((re = TAILQ_FIRST(refs))) {
 		TAILQ_REMOVE(refs, re, entry);
+		got_ref_close(re->ref);
 		free(re);
 	}