The content of the GList returned by osinfo_entity_get_param_key() is not owned by the caller, but by OsinfoEntity. However, the "id" field added to the list was owned by the caller, and could not be freed properly. This commit adds a const char * to the GList rather than adding a g_strdup'ed string in order to fix this leak. ==12129== 3 bytes in 1 blocks are definitely lost in loss record 7 of 269 ==12129== at 0x4C2BBAD: malloc (vg_replace_malloc.c:299) ==12129== by 0x684FE58: g_malloc (gmem.c:94) ==12129== by 0x686889E: g_strdup (gstrfuncs.c:363) ==12129== by 0x532BB81: osinfo_entity_get_param_keys (osinfo_entity.c:300) ==12129== by 0x401AFF: test_multi_props_clear (test-entity.c:266) ==12129== by 0x5117535: tcase_run_tfun_nofork.isra.9 (check_run.c:390) ==12129== by 0x51178EB: srunner_iterate_tcase_tfuns (check_run.c:231) ==12129== by 0x51178EB: srunner_run_tcase (check_run.c:373) ==12129== by 0x51178EB: srunner_iterate_suites (check_run.c:195) ==12129== by 0x51178EB: srunner_run (check_run.c:782) ==12129== by 0x401369: main (test-entity.c:344) --- osinfo/osinfo_entity.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osinfo/osinfo_entity.c b/osinfo/osinfo_entity.c index 7e27930..20b9115 100644 --- a/osinfo/osinfo_entity.c +++ b/osinfo/osinfo_entity.c @@ -297,7 +297,7 @@ GList *osinfo_entity_get_param_keys(OsinfoEntity *entity) { g_return_val_if_fail(OSINFO_IS_ENTITY(entity), NULL); GList *keys = g_hash_table_get_keys(entity->priv->params); - keys = g_list_append(keys, g_strdup("id")); + keys = g_list_append(keys, (char *)"id"); return keys; } -- 2.7.4 _______________________________________________ Libosinfo mailing list Libosinfo@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libosinfo