From 8f7aa273dea5d127249cb76d2f8a2ccc43802d28 Mon Sep 17 00:00:00 2001 From: Ignacio Casal Quinteiro Date: Tue, 26 Jan 2016 11:42:05 +0100 Subject: [PATCH] registrybackend: fix possible mem leak If the parameters do not validate we would leak the memory. --- gio/gregistrysettingsbackend.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gio/gregistrysettingsbackend.c b/gio/gregistrysettingsbackend.c index 61de5baa8..da7ebaf8b 100644 --- a/gio/gregistrysettingsbackend.c +++ b/gio/gregistrysettingsbackend.c @@ -388,17 +388,19 @@ typedef struct } RegistryCacheItem; static GNode * -registry_cache_add_item (GNode *parent, - gchar *name, - RegistryValue value, - gint ref_count) +registry_cache_add_item (GNode *parent, + gchar *name, + RegistryValue value, + gint ref_count) { - RegistryCacheItem *item = g_slice_new (RegistryCacheItem); + RegistryCacheItem *item; GNode *cache_node; g_return_val_if_fail (name != NULL, NULL); g_return_val_if_fail (parent != NULL, NULL); + item = g_slice_new (RegistryCacheItem); + /* Ref count should be the number of watch points above this node */ item->ref_count = ref_count; @@ -413,6 +415,7 @@ registry_cache_add_item (GNode *parent, cache_node = g_node_new (item); g_node_append (parent, cache_node); + return cache_node; }