summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Sales de Andrade <quantum.analyst@gmail.com>2019-01-31 16:44:13 -0500
committerElliott Sales de Andrade <quantum.analyst@gmail.com>2019-02-02 03:00:15 -0500
commit763d054d971e331e06649b33c78b5d5c85a5e224 (patch)
tree59337b8ceeccda0828c101be7dc56c6ce4f71873
parent1f1e11f4325bc017829a795c48b829e967efc53f (diff)
downloadgobject-introspection-763d054d971e331e06649b33c78b5d5c85a5e224.tar.gz
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.
-rw-r--r--girepository/girepository.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/girepository/girepository.c b/girepository/girepository.c
index 77ba8ed5..bc9e4ed5 100644
--- a/girepository/girepository.c
+++ b/girepository/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);