From: Philip Withnall Date: Mon, 10 Aug 2020 11:07:22 +0000 (+0100) Subject: ostree/dump: Fix a memory leak X-Git-Tag: archive/raspbian/2022.1-3+rpi1~1^2~4^2~7^2~10^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=23bdc4e5df41a1f53ce387f90eaf6b79c644b2da;p=ostree.git 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 --- 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. */