libxfcegui4 is crashing when getting a NULL pointer as filename at icon lookup. Backtrace: (gdb) r Starting program: /home/enrico/apps/xfce-svn/bin/xfdesktop [Thread debugging using libthread_db enabled] [New Thread -1219716736 (LWP 12866)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1219716736 (LWP 12866)] xfce_themed_icon_lookup (name=0x0, size=16) at icons.c:218 218 if(*name == '/' && g_file_test(name, G_FILE_TEST_IS_REGULAR)) (gdb) bt #0 xfce_themed_icon_lookup (name=0x0, size=16) at icons.c:218 #1 0xb7f752e8 in xfce_app_menu_item_set_icon_name (app_menu_item=0x8326e30, filename=0x0) at xfce-appmenuitem.c:696 #2 0xb7f76087 in xfce_app_menu_item_set_property (object=0x8326e30, prop_id=3, value=0xbfb14488, pspec=0x82b1858) at xfce-appmenuitem.c:308 #3 0xb780ac9a in g_object_newv () from /usr/lib/libgobject-2.0.so.0 #4 0xb780b649 in g_object_new_valist () from /usr/lib/libgobject-2.0.so.0 #5 0xb780b750 in g_object_new () from /usr/lib/libgobject-2.0.so.0 #6 0xb7f7548c in xfce_app_menu_item_new_full (label=0x82c6e30 "nxtvepg", command=0x82c6c10 "nxtvepg", icon_filename=0x0, needs_term=0, snotify=1) at xfce-appmenuitem.c:506 #7 0xb71e5faf in desktop_menu_add_items (desktop_menu=0x80d74d8, xfce_menu=<value optimized out>, menu=0x82e8660, watch_dirs=0x80d49a0) at desktop-menu.c:267 #8 0xb71e5eab in desktop_menu_add_items (desktop_menu=0x80d74d8, xfce_menu=<value optimized out>, menu=0x82e8060, watch_dirs=0x80d49a0) at desktop-menu.c:247 #9 0xb71e637e in _generate_menu (desktop_menu=0x80d74d8, force=<value optimized out>) at desktop-menu.c:325 #10 0xb71e64c7 in _generate_menu_initial (data=0x80d74d8) at desktop-menu.c:377 #11 0xb7791d01 in ?? () from /usr/lib/libglib-2.0.so.0 #12 0x080d74d8 in ?? () #13 0x080e02e8 in ?? () #14 0xbfb146f8 in ?? () #15 0xb77abad2 in g_slist_prepend () from /usr/lib/libglib-2.0.so.0 #16 0xb7793a62 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #17 0xb7796a2f in ?? () from /usr/lib/libglib-2.0.so.0 #18 0x0809b2d8 in ?? () #19 0x000000c8 in ?? () #20 0x080dda78 in ?? () #21 0x00000003 in ?? () #22 0x00000003 in ?? () #23 0xb77fa468 in ?? () from /usr/lib/libglib-2.0.so.0 #24 0x0809b2d8 in ?? () #25 0xbfb147a4 in ?? () #26 0x00000001 in ?? () #27 0x00000001 in ?? () #28 0x0809b2d8 in ?? () #29 0x080dda78 in ?? () #30 0xb76cfe40 in ?? () from /lib/i686/cmov/libc.so.6 #31 0xb7756b70 in ?? () from /lib/i686/cmov/libpthread.so.0 #32 0xb7755410 in ?? () from /lib/i686/cmov/libpthread.so.0 #33 0xb77b10e3 in g_thread_self () from /usr/lib/libglib-2.0.so.0 #34 0xb7796dd9 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 #35 0xb7ca6654 in IA__gtk_main () at /tmp/buildd/gtk+2.0-2.10.13/gtk/gtkmain.c:1154 #36 0x0805601b in main (argc=64, argv=0x0) at main.c:404 (gdb) print name $1 = (const gchar *) 0x0
Looks like brian
The g_return_*if_fail() macros are used all throughout Xfce. The solution to this is to never compile with G_DISABLE_CHECKS defined.
Yes, compiling w/o probably is the best but then it should not be added by default. xfce4-dev-tools/trunk/m4macros/xdt-features.m4 line 123 adds this flag but for some reason only when --disable-asserts is set. I'm sure I never set --disable-asserts but I set --disable-debug when running ./configure. Maybe --disable-asserts is set by --disable-debug by some autotools magic. Anyway, it seems this is a problem in xfce4-dev-tools? New bugreport?