As stated in a previous message, I installed gnome 2.12.1 from scratch (as
in Linux From Scratch) and am having problems with gnome-control-center
and gnome-theme-manager not working. I have done some more investigating
and it seems part of the problem is with gnome-settings-daemon not
starting. As can be seen there is a null string being passed to the
function in glib g_utf8_validate, which appears to be from a empty value
in BG_PREFERENCES_PICTURE_FILENAME. I'm wondering if this is a bug?
(gdb) run
Starting program: /usr/local/gnome212/libexec/gnome-settings-daemon
[Thread debugging using libthread_db enabled]
[New Thread -1228441152 (LWP 12203)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1228441152 (LWP 12203)]
0xb749ad00 in fast_validate (str=0x0) at gutf8.c:1531
1531 gutf8.c: No such file or directory.
in gutf8.c
(gdb) where
#0 0xb749ad00 in fast_validate (str=0x0) at gutf8.c:1531
#1 0xb749af7c in IA__g_utf8_validate (str=0x0, max_len=-1, end=0x0)
at gutf8.c:1697
#2 0x08064f60 in bg_preferences_load (prefs=0x80af050) at preferences.c:248
#3 0x08058aef in gnome_settings_background_init (client=0x80a9ce8)
at gnome-settings-background.c:89
#4 0x080554de in gnome_settings_daemon_new () at gnome-settings-daemon.c:353
#5 0x
void
bg_preferences_load (BGPreferences *prefs)
{
GConfClient *client;
GError *error = NULL;
char *tmp;
g_return_if_fail (prefs != NULL);
g_return_if_fail (IS_BG_PREFERENCES (prefs));
client = gconf_client_get_default ();
prefs->enabled = gconf_client_get_bool (client, BG_PREFERENCES_DRAW_BACK
GROUND, &error);
tmp = ' (client, BG_PREFERENCES_PICTURE_FILENAME,
&error);
if (g_utf8_validate (tmp, -1, NULL) &&
g_file_test (tmp, G_FILE_TEST_EXISTS))
prefs->wallpaper_filename = g_strdup (tmp);
else
prefs->wallpaper_filename = g_filename_from_utf8 (tmp, -1, NULL,
NULL, NULL);
g_free (tmp);
gchar*
gconf_client_get_string(GConfClient* client, const gchar* key,
GError** err)
{
GError* error = NULL;
GConfValue* val;
g_return_val_if_fail (err == NULL || *err == NULL, NULL);
val = gconf_client_get (client, key, err);
if (val != NULL)
{
gchar* retval = NULL;
g_assert(error == NULL);
if (check_type (key, val, GCONF_VALUE_STRING, &error))
retval = gconf_value_steal_string (val);
else
handle_error (client, error, err);
gconf_value_free (val);
return retval;
}
else
{
if (error != NULL)
handle_error (client, error, err);
return NULL;
}
}
Fred
_______________________________________________
gnome-list mailing list
gnome-list@xxxxxxxxx
http://mail.gnome.org/mailman/listinfo/gnome-list