diff options
author | Philip Withnall <philip@tecnocode.co.uk> | 2018-07-17 12:14:07 +0200 |
---|---|---|
committer | Philip Withnall <philip@tecnocode.co.uk> | 2018-07-17 12:14:07 +0200 |
commit | b5948c1a3900f1e795fe7c5a0692bf5bfb518c8f (patch) | |
tree | 7703b151923aa5e0a4cf40a0a9e85abcdabfd270 | |
parent | 2c79b357b245a9691b127aa02cbc9688611490e0 (diff) | |
download | glib-b5948c1a3900f1e795fe7c5a0692bf5bfb518c8f.tar.gz |
gsettings: Fix some memory leaks on error paths
Coverity CID: #1393949
Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>
-rw-r--r-- | gio/gsettings.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gio/gsettings.c b/gio/gsettings.c index 194a73778..ab7f43835 100644 --- a/gio/gsettings.c +++ b/gio/gsettings.c @@ -2921,10 +2921,12 @@ g_settings_bind_with_mapping (GSettings *settings, if (!g_variant_type_equal (binding->key.type, G_VARIANT_TYPE_BOOLEAN)) { + gchar *type_string = g_variant_type_dup_string (binding->key.type); g_critical ("g_settings_bind: G_SETTINGS_BIND_INVERT_BOOLEAN " "was specified, but key '%s' on schema '%s' has " "type '%s'", key, g_settings_schema_get_id (settings->priv->schema), - g_variant_type_dup_string (binding->key.type)); + type_string); + g_free (type_string); return; } @@ -2935,12 +2937,14 @@ g_settings_bind_with_mapping (GSettings *settings, !g_settings_mapping_is_compatible (binding->property->value_type, binding->key.type)) { + gchar *type_string = g_variant_type_dup_string (binding->key.type); g_critical ("g_settings_bind: property '%s' on class '%s' has type " "'%s' which is not compatible with type '%s' of key '%s' " "on schema '%s'", binding->property->name, G_OBJECT_TYPE_NAME (object), g_type_name (binding->property->value_type), - g_variant_type_dup_string (binding->key.type), key, + type_string, key, g_settings_schema_get_id (settings->priv->schema)); + g_free (type_string); return; } |