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));