From c920061019e514a14fb3fe8478256c5f2b9636b5 Mon Sep 17 00:00:00 2001 From: Victor Toso Date: Tue, 15 Feb 2022 13:47:03 +0100 Subject: tree: Fix leaks in osinfo_tree_get_os_variants() Leak of OsinfoFilter * ==420790== 343 (40 direct, 303 indirect) bytes in 1 blocks are definitely lost in loss record 2,302 of 2,343 ==420790== at 0x48F3437: g_type_create_instance (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==420790== by 0x48DAD4C: ??? (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==420790== by 0x48DBD1C: g_object_new_with_properties (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==420790== by 0x48DC820: g_object_new (in /usr/lib64/libgobject-2.0.so.0.7000.3) ==420790== by 0x4882C2D: osinfo_tree_get_os_variants (osinfo_tree.c:1147) ==420790== by 0x402C0A: test_os_variants (test-tree.c:57) ==420790== by 0x4992BD5: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==420790== by 0x49928FA: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==420790== by 0x49930A9: g_test_run_suite (in /usr/lib64/libglib-2.0.so.0.7000.3) ==420790== by 0x49930D0: g_test_run (in /usr/lib64/libglib-2.0.so.0.7000.3) ==420790== by 0x402449: main (test-tree.c:206) Leak of GList * ==421621== 24 bytes in 1 blocks are definitely lost in loss record 1,016 of 2,334 ==421621== at 0x484486F: malloc (vg_replace_malloc.c:381) ==421621== by 0x496E3D8: g_malloc (in /usr/lib64/libglib-2.0.so.0.7000.3) ==421621== by 0x4987024: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.7000.3) ==421621== by 0x4963A2A: g_list_copy_deep (in /usr/lib64/libglib-2.0.so.0.7000.3) ==421621== by 0x4882C25: osinfo_tree_get_os_variants (osinfo_tree.c:1145) ==421621== by 0x402C0A: test_os_variants (test-tree.c:57) ==421621== by 0x4992BD5: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==421621== by 0x49928FA: ??? (in /usr/lib64/libglib-2.0.so.0.7000.3) ==421621== by 0x49930A9: g_test_run_suite (in /usr/lib64/libglib-2.0.so.0.7000.3) ==421621== by 0x49930D0: g_test_run (in /usr/lib64/libglib-2.0.so.0.7000.3) ==421621== by 0x402449: main (test-tree.c:206) Signed-off-by: Victor Toso --- osinfo/osinfo_tree.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/osinfo/osinfo_tree.c b/osinfo/osinfo_tree.c index 60deb52..7e825b5 100644 --- a/osinfo/osinfo_tree.c +++ b/osinfo/osinfo_tree.c @@ -1155,6 +1155,8 @@ OsinfoOsVariantList *osinfo_tree_get_os_variants(OsinfoTree *tree) OSINFO_LIST(os_variants), filter); } + g_list_free(ids); + g_object_unref(filter); g_object_unref(os_variants); return tree_variants; -- cgit v1.2.1