Author: jannis
Date: 2008-07-17 14:40:16 +0000 (Thu, 17 Jul 2008)
New Revision: 27327
Modified:
xfconf/trunk/xfsettingsd/registry.c
Log:
xfsettingsd/registry.c: Fix memory leaks and a crash due to invalid
free'ing of a GError (use g_error_free instead of g_free).
Modified: xfconf/trunk/xfsettingsd/registry.c
===================================================================
--- xfconf/trunk/xfsettingsd/registry.c 2008-07-17 13:49:30 UTC (rev 27326)
+++ xfconf/trunk/xfsettingsd/registry.c 2008-07-17 14:40:16 UTC (rev 27327)
@@ -371,7 +371,7 @@
/* print warning */
g_critical ("Failed to spawn xrdb: %s", error->message);
- g_free (error);
+ g_error_free (error);
}
void
@@ -533,6 +533,8 @@
8, PropModeReplace, buffer, buf_len);
registry->priv->last_change_serial = registry->priv->serial;
+
+ g_free (buffer);
}
XSettingsRegistry *
@@ -703,6 +705,7 @@
{
XfconfChannel *channel = registry->priv->channel;
XSettingsRegistryEntry *entry = properties;
+ gchar *str;
while (entry->name)
{
@@ -717,7 +720,9 @@
g_value_set_int(&entry->value,
xfconf_channel_get_int(channel, name, g_value_get_int(&entry->value)));
break;
case G_TYPE_STRING:
- g_value_set_string(&entry->value,
xfconf_channel_get_string(channel, name, g_value_get_string(&entry->value)));
+ str = xfconf_channel_get_string(channel, name,
g_value_get_string(&entry->value));
+ g_value_set_string(&entry->value, str);
+ g_free(str);
break;
case G_TYPE_BOOLEAN:
g_value_set_boolean(&entry->value,
xfconf_channel_get_bool(channel, name, g_value_get_boolean(&entry->value)));
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits