From 23bdc4e5df41a1f53ce387f90eaf6b79c644b2da Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Mon, 10 Aug 2020 12:07:22 +0100 Subject: [PATCH] ostree/dump: Fix a memory leak Re-using the `refs` variable for the main list of refs, plus the iterated lists, meant that the main list was never freed (although all the iterated ones were freed correctly). Fix this by using two variables rather than reusing the one. Signed-off-by: Philip Withnall --- src/ostree/ot-dump.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ostree/ot-dump.c b/src/ostree/ot-dump.c index 1f911d4e..a8ed54a2 100644 --- a/src/ostree/ot-dump.c +++ b/src/ostree/ot-dump.c @@ -322,10 +322,11 @@ ot_dump_summary_bytes (GBytes *summary_bytes, collection_map = g_variant_lookup_value (exts, OSTREE_SUMMARY_COLLECTION_MAP, G_VARIANT_TYPE ("a{sa(s(taya{sv}))}")); if (collection_map != NULL) { + g_autoptr(GVariant) collection_refs = NULL; g_variant_iter_init (&iter, collection_map); - while (g_variant_iter_loop (&iter, "{&s@a(s(taya{sv}))}", &collection_id, &refs)) - dump_summary_refs (collection_id, refs); + while (g_variant_iter_loop (&iter, "{&s@a(s(taya{sv}))}", &collection_id, &collection_refs)) + dump_summary_refs (collection_id, collection_refs); } /* Print out the additional metadata. */