GNOME Bugzilla – Bug 332426
GDMsetup immediately crashes in Dapper.
Last modified: 2006-03-01 10:46:02 UTC
That bug has been described on https://launchpad.net/distros/ubuntu/+source/gdm/+bug/32034 "The GDM setup tool "gdmsetup" crashes every time I attempt to use it. I tried running it as "sudo gdmsetup" and I got the error: "*** glibc detected *** free(): invalid pointer: 0x0846a230 *** Aborted." Then I tried running it as "gksudo gdmsetup" and got this error: "*** glibc detect8�|�8(�7ed *** double free or corruption (fasttop): 0x08461c18 ***" I am running the latest update of dapper (gnome 2.13.91), although it did it with gnome 2.13.90 too. ... > Thanks for your bug. Could you get a backtrace of the crash of a valgrind log? - sudo gdb gdmsetup > (gdb) run > ... crash > (gdb) thread apply all bt > Or install valgrind and run "sudo valgrind gdmsetup" > You can copy the log to a comment. Did you have any custom value to /etc/gdm/gdm.conf-custom? ... Updated libpango and got your custom package to install. Unfortunately, gdmsetup is no longer crashing like it was before, so I don't know if this valgrind will help or not?" I copy some part of the user comment valgrind log which seems to point issues with gdm: "==21124== Invalid read of size 1 ==21124== at 0x48B6C91: strstr (in /lib/tls/i686/cmov/libc-2.3.6.so) ==21124== by 0x480437A: g_strsplit (in /usr/lib/libglib-2.0.so.0.902.4) ==21124== by 0x80542E7: setup_include_exclude (gdmsetup.c:1722) ==21124== by 0x80553D0: setup_face (gdmsetup.c:2127) ==21124== by 0x8057A2E: setup_users_tab (gdmsetup.c:2957) ==21124== by 0x8060385: setup_gui (gdmsetup.c:6271) ==21124== by 0x8060B18: main (gdmsetup.c:6527) ==21124== Address 0x4A9C6E0 is 0 bytes inside a block of size 1 free'd ==21124== at 0x401CFCF: free (vg_replace_malloc.c:235) ==21124== by 0x47F2EDB: g_free (in /usr/lib/libglib-2.0.so.0.902.4) ==21124== by 0x8063823: _gdm_config_get_string (gdmconfig.c:371) ==21124== by 0x8063870: gdm_config_get_string (gdmconfig.c:381) ==21124== by 0x80614FB: gdm_users_init (gdmuser.c:314) ==21124== by 0x8053DA0: setup_user_combobox_list (gdmsetup.c:1619) ==21124== by 0x8053F3D: setup_user_combobox (gdmsetup.c:1649) ==21124== by 0x805C9F8: setup_security_tab (gdmsetup.c:5002) ==21124== by 0x8060380: setup_gui (gdmsetup.c:6270) ==21124== by 0x8060B18: main (gdmsetup.c:6527) ==21124== ==21124== Invalid read of size 1 ==21124== at 0x48043B6: g_strsplit (in /usr/lib/libglib-2.0.so.0.902.4) ==21124== by 0x80542E7: setup_include_exclude (gdmsetup.c:1722) ==21124== by 0x80553D0: setup_face (gdmsetup.c:2127) ==21124== by 0x8057A2E: setup_users_tab (gdmsetup.c:2957) ==21124== by 0x8060385: setup_gui (gdmsetup.c:6271) ==21124== by 0x8060B18: main (gdmsetup.c:6527) ==21124== Address 0x4A9C6E0 is 0 bytes inside a block of size 1 free'd ==21124== at 0x401CFCF: free (vg_replace_malloc.c:235) ==21124== by 0x47F2EDB: g_free (in /usr/lib/libglib-2.0.so.0.902.4) ==21124== by 0x8063823: _gdm_config_get_string (gdmconfig.c:371) ==21124== by 0x8063870: gdm_config_get_string (gdmconfig.c:381) ==21124== by 0x80614FB: gdm_users_init (gdmuser.c:314) ==21124== by 0x8053DA0: setup_user_combobox_list (gdmsetup.c:1619) ==21124== by 0x8053F3D: setup_user_combobox (gdmsetup.c:1649) ==21124== by 0x805C9F8: setup_security_tab (gdmsetup.c:5002) ==21124== by 0x8060380: setup_gui (gdmsetup.c:6270) ==21124== by 0x8060B18: main (gdmsetup.c:6527) ==21124== ==21124== Invalid read of size 1 ==21124== at 0x48B6C91: strstr (in /lib/tls/i686/cmov/libc-2.3.6.so) ==21124== by 0x480437A: g_strsplit (in /usr/lib/libglib-2.0.so.0.902.4) ==21124== by 0x8054335: setup_include_exclude (gdmsetup.c:1724) ==21124== by 0x80553EA: setup_face (gdmsetup.c:2129) ==21124== by 0x8057A2E: setup_users_tab (gdmsetup.c:2957) ==21124== by 0x8060385: setup_gui (gdmsetup.c:6271) ==21124== by 0x8060B18: main (gdmsetup.c:6527) ==21124== Address 0x4A9CCD8 is 0 bytes inside a block of size 89 free'd ==21124== at 0x401CFCF: free (vg_replace_malloc.c:235) ==21124== by 0x47F2EDB: g_free (in /usr/lib/libglib-2.0.so.0.902.4) ==21124== by 0x8063823: _gdm_config_get_string (gdmconfig.c:371) ==21124== by 0x8063870: gdm_config_get_string (gdmconfig.c:381) ==21124== by 0x806157A: gdm_users_init (gdmuser.c:321) ==21124== by 0x8053DA0: setup_user_combobox_list (gdmsetup.c:1619) ==21124== by 0x8053F3D: setup_user_combobox (gdmsetup.c:1649) ==21124== by 0x805C9F8: setup_security_tab (gdmsetup.c:5002) ==21124== by 0x8060380: setup_gui (gdmsetup.c:6270) ==21124== by 0x8060B18: main (gdmsetup.c:6527) ==21124== ==21124== Invalid read of size 1 ==21124== at 0x401E898: strncpy (mac_replace_strmem.c:290) ==21124== by 0x4804449: g_strsplit (in /usr/lib/libglib-2.0.so.0.902.4) ==21124== by 0x8054335: setup_include_exclude (gdmsetup.c:1724) ==21124== by 0x80553EA: setup_face (gdmsetup.c:2129) ==21124== by 0x8057A2E: setup_users_tab (gdmsetup.c:2957) ==21124== by 0x8060385: setup_gui (gdmsetup.c:6271) ==21124== by 0x8060B18: main (gdmsetup.c:6527) ==21124== Address 0x4A9CCD8 is 0 bytes inside a block of size 89 free'd ==21124== at 0x401CFCF: free (vg_replace_malloc.c:235) ==21124== by 0x47F2EDB: g_free (in /usr/lib/libglib-2.0.so.0.902.4) ==21124== by 0x8063823: _gdm_config_get_string (gdmconfig.c:371) ==21124== by 0x8063870: gdm_config_get_string (gdmconfig.c:381) ==21124== by 0x806157A: gdm_users_init (gdmuser.c:321) ==21124== by 0x8053DA0: setup_user_combobox_list (gdmsetup.c:1619) ==21124== by 0x8053F3D: setup_user_combobox (gdmsetup.c:1649) ==21124== by 0x805C9F8: setup_security_tab (gdmsetup.c:5002) ==21124== by 0x8060380: setup_gui (gdmsetup.c:6270) ==21124== by 0x8060B18: main (gdmsetup.c:6527)" That seems to point a leak too: "==21124== 286 bytes in 12 blocks are definitely lost in loss record 112 of 218 ==21124== at 0x401C422: malloc (vg_replace_malloc.c:149) ==21124== by 0x48A777B: vasprintf (in /lib/tls/i686/cmov/libc-2.3.6.so) ==21124== by 0x4812490: g_vasprintf (in /usr/lib/libglib-2.0.so.0.902.4) ==21124== by 0x4802F30: g_strdup_vprintf (in /usr/lib/libglib-2.0.so.0.902.4)==21124== by 0x4802F50: g_strdup_printf (in /usr/lib/libglib-2.0.so.0.902.4) ==21124== by 0x8063909: _gdm_config_get_translated_string (gdmconfig.c:414) ==21124== by 0x80639A1: gdm_config_get_translated_string (gdmconfig.c:434) ==21124== by 0x8056C58: setup_greeter_untranslate_entry (gdmsetup.c:2600) ==21124== by 0x805EADF: setup_local_welcome_message (gdmsetup.c:5775) ==21124== by 0x805EB3F: setup_local_plain_settings (gdmsetup.c:5803) ==21124== by 0x805EB4C: setup_local_tab (gdmsetup.c:5809) ==21124== by 0x8060371: setup_gui (gdmsetup.c:6267) ==21124== ==21124== ==21124== 350 bytes in 5 blocks are definitely lost in loss record 120 of 218 ==21124== at 0x401D89D: realloc (vg_replace_malloc.c:306) ==21124== by 0x48A7754: vasprintf (in /lib/tls/i686/cmov/libc-2.3.6.so) ==21124== by 0x4812490: g_vasprintf (in /usr/lib/libglib-2.0.so.0.902.4) ==21124== by 0x4802F30: g_strdup_vprintf (in /usr/lib/libglib-2.0.so.0.902.4)==21124== by 0x4802F50: g_strdup_printf (in /usr/lib/libglib-2.0.so.0.902.4) ==21124== by 0x8058F8B: read_themes (gdmsetup.c:3411) ==21124== by 0x805D23A: setup_local_themed_settings (gdmsetup.c:5241) ==21124== by 0x805EB51: setup_local_tab (gdmsetup.c:5810) ==21124== by 0x8060371: setup_gui (gdmsetup.c:6267) ==21124== by 0x8060B18: main (gdmsetup.c:6527)"
Thanks for pointing out some of the above leaks. I updated the code in CVS head so that the leaks you point out should be gone. I also think that the core dumping problem was fixed already on February 15th (see ChangeLog). Could you test with building from CVS head and tell me if you are seeing gdmsetup work better?
I've found this problem and building from cvs fixes it. Although CVS is missing the Makefile.in for UK docs. Thanks for fixing this.
I've just tried the CVS, it was not crashing before so I'm not sure about it but it fixes the valgrind issue that I had before. I'll upload the package of new tarball for GNOME 2.13.92 when it's rolled and comment to confirm if that's fixed for the different users who had the issue
Ok, I think I fixed the problem in CVS. Thanks for the debug info, I think that pinpointed the problem. I'm doing a release later today, can you test if this fixes the problem for you?
It sounds like this problem is fixed. Reopen the bug if you see the problem again in the 2.13.0.9 release.
The new version works fine according to the Ubuntu users comments on that, thank you!