You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
GConf2/no-access-crash.patch

50 lines
1.4 KiB

diff -up GConf-2.28.0/gconf/gconf.c.no-access GConf-2.28.0/gconf/gconf.c
--- GConf-2.28.0/gconf/gconf.c.no-access 2009-12-14 14:05:28.356082892 -0500
+++ GConf-2.28.0/gconf/gconf.c 2009-12-14 14:06:57.345056432 -0500
@@ -511,6 +511,7 @@ gconf_engine_get_local (const gchar
{
GConfEngine* conf;
GConfSource* source;
+ GConfSources* sources;
g_return_val_if_fail(address != NULL, NULL);
g_return_val_if_fail(err == NULL || *err == NULL, NULL);
@@ -519,10 +520,14 @@ gconf_engine_get_local (const gchar
if (source == NULL)
return NULL;
-
+
+ sources = gconf_sources_new_from_source(source);
+ if (sources == NULL)
+ return NULL;
+
conf = gconf_engine_blank(FALSE);
- conf->local_sources = gconf_sources_new_from_source(source);
+ conf->local_sources = sources;
g_assert (gconf_engine_is_local (conf));
@@ -534,13 +539,19 @@ gconf_engine_get_local_for_addresses (GS
GError **err)
{
GConfEngine *conf;
+ GConfSources* sources;
g_return_val_if_fail (addresses != NULL, NULL);
g_return_val_if_fail (err == NULL || *err == NULL, NULL);
+ sources = gconf_sources_new_from_addresses (addresses, err);
+
+ if (sources == NULL)
+ return NULL;
+
conf = gconf_engine_blank (FALSE);
- conf->local_sources = gconf_sources_new_from_addresses (addresses, err);
+ conf->local_sources = sources;
g_assert (gconf_engine_is_local (conf));