From d17edde56885cf8912bb9229203cc990961a283a Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Thu, 31 Jan 2019 16:44:13 -0500 Subject: [PATCH] Fix possible leak of transitive dependency name. If a transitive dependency appears twice, the original pointer will be removed from the hash table. Since these names were created by g_strsplit, they need to be freed, or they will leak. --- girepository.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/girepository.c b/girepository.c index 77ba8ed51..bc9e4ed54 100644 --- a/girepository.c +++ b/girepository.c @@ -562,7 +562,8 @@ g_irepository_get_dependencies (GIRepository *repository, g_return_val_if_fail (typelib != NULL, NULL); /* Load the dependencies. */ - transitive_dependencies = g_hash_table_new (g_str_hash, g_str_equal); + transitive_dependencies = g_hash_table_new_full (g_str_hash, g_str_equal, + g_free, NULL); get_typelib_dependencies_transitive (repository, typelib, transitive_dependencies);