users-admin (amd64) crashes after new user was created

Bug #21651 reported by Philipp Schroeder
24
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gnome-system-tools (Ubuntu)
Fix Released
Medium
Daniel Holbach

Bug Description

The following happens on a Edubuntu server only (edubuntu-preview), but not on
Ubuntu-preview.

'Users and Groups' tool crashes on hitting 'ok', after new user info was entered
(username, real name and user password).

Backtrace was generated from '/usr/bin/users-admin'

(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 46912582180080 (LWP 7904)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
0x00002aaaae58a094 in waitpid () from /lib/libpthread.so.0
#0 0x00002aaaae58a094 in waitpid () from /lib/libpthread.so.0
#1 0x00002aaaaac26eea in libgnomeui_module_info_get ()
   from /usr/lib/libgnomeui-2.so.0
#2 <signal handler called>
#3 0x0000000000416033 in gst_xml_element_find_first ()
#4 0x0000000000416745 in gst_xml_set_child_content ()
#5 0x0000000000414585 in user_update_xml ()
#6 0x000000000040e987 in user_update ()
#7 0x000000000040c60e in on_user_settings_ok_clicked ()
#8 0x00002aaaac7603c0 in g_closure_invoke ()
   from /usr/lib/libgobject-2.0.so.0
#9 0x00002aaaac76ef2c in g_signal_stop_emission ()
   from /usr/lib/libgobject-2.0.so.0
#10 0x00002aaaac7703ec in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#11 0x00002aaaac7707a3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#12 0x00002aaaaba018a7 in _gtk_button_set_depressed ()
   from /usr/lib/libgtk-x11-2.0.so.0
#13 0x00002aaaac7603c0 in g_closure_invoke ()
   from /usr/lib/libgobject-2.0.so.0
#14 0x00002aaaac76eab1 in g_signal_stop_emission ()
   from /usr/lib/libgobject-2.0.so.0
#15 0x00002aaaac7703ec in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#16 0x00002aaaac7707a3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#17 0x00002aaaaba00e59 in _gtk_button_paint ()
   from /usr/lib/libgtk-x11-2.0.so.0
#18 0x00002aaaabab9bc0 in _gtk_marshal_BOOLEAN__BOXED ()
   from /usr/lib/libgtk-x11-2.0.so.0
#19 0x00002aaaac7603c0 in g_closure_invoke ()
   from /usr/lib/libgobject-2.0.so.0
#20 0x00002aaaac76f0ab in g_signal_stop_emission ()
   from /usr/lib/libgobject-2.0.so.0
#21 0x00002aaaac770127 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#22 0x00002aaaac7707a3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#23 0x00002aaaabb97ec5 in gtk_widget_activate ()
   from /usr/lib/libgtk-x11-2.0.so.0
#24 0x00002aaaabab7fcb in gtk_propagate_event ()
   from /usr/lib/libgtk-x11-2.0.so.0
#25 0x00002aaaabab8447 in gtk_main_do_event ()
   from /usr/lib/libgtk-x11-2.0.so.0
#26 0x00002aaaac038f3c in _gdk_events_queue ()
   from /usr/lib/libgdk-x11-2.0.so.0
#27 0x00002aaaacd6d46d in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#28 0x00002aaaacd7060f in g_main_context_check ()
   from /usr/lib/libglib-2.0.so.0
#29 0x00002aaaacd708ba in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#30 0x00002aaaabab7830 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#31 0x000000000041a9f0 in gst_tool_process_startup ()
#32 0x000000000040bce1 in main ()

Thread 1 (Thread 46912582180080 (LWP 7904)):
#0 0x00002aaaae58a094 in waitpid () from /lib/libpthread.so.0
No symbol table info available.
#1 0x00002aaaaac26eea in libgnomeui_module_info_get ()
   from /usr/lib/libgnomeui-2.so.0
No symbol table info available.
#2 <signal handler called>
No symbol table info available.
#3 0x0000000000416033 in gst_xml_element_find_first ()
No symbol table info available.
#4 0x0000000000416745 in gst_xml_set_child_content ()
No symbol table info available.
#5 0x0000000000414585 in user_update_xml ()
No symbol table info available.
#6 0x000000000040e987 in user_update ()
No symbol table info available.
#7 0x000000000040c60e in on_user_settings_ok_clicked ()
No symbol table info available.
#8 0x00002aaaac7603c0 in g_closure_invoke ()
   from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#9 0x00002aaaac76ef2c in g_signal_stop_emission ()
   from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#10 0x00002aaaac7703ec in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#11 0x00002aaaac7707a3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#12 0x00002aaaaba018a7 in _gtk_button_set_depressed ()
   from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#13 0x00002aaaac7603c0 in g_closure_invoke ()
   from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#14 0x00002aaaac76eab1 in g_signal_stop_emission ()
   from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#15 0x00002aaaac7703ec in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#16 0x00002aaaac7707a3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#17 0x00002aaaaba00e59 in _gtk_button_paint ()
   from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#18 0x00002aaaabab9bc0 in _gtk_marshal_BOOLEAN__BOXED ()
   from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#19 0x00002aaaac7603c0 in g_closure_invoke ()
   from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#20 0x00002aaaac76f0ab in g_signal_stop_emission ()
   from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#21 0x00002aaaac770127 in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#22 0x00002aaaac7707a3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#23 0x00002aaaabb97ec5 in gtk_widget_activate ()
   from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#24 0x00002aaaabab7fcb in gtk_propagate_event ()
   from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#25 0x00002aaaabab8447 in gtk_main_do_event ()
   from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#26 0x00002aaaac038f3c in _gdk_events_queue ()
   from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
#27 0x00002aaaacd6d46d in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#28 0x00002aaaacd7060f in g_main_context_check ()
   from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#29 0x00002aaaacd708ba in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#30 0x00002aaaabab7830 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#31 0x000000000041a9f0 in gst_tool_process_startup ()
No symbol table info available.
#32 0x000000000040bce1 in main ()
No symbol table info available.
#0 0x00002aaaae58a094 in waitpid () from /lib/libpthread.so.0

Revision history for this message
Philipp Schroeder (philipp.schroeder) wrote :

Created an attachment (id=3799)
backtrace users-admin for Edubuntu-server (amd64)

Revision history for this message
Philipp Schroeder (philipp.schroeder) wrote :

It doesn't crash on Edubuntu-workstation (i386).

(Sorry, I should have uploaded the backtrace output as attachment rather than
pasting it).

Revision history for this message
Sebastien Bacher (seb128) wrote :

Thanks for your bug. Seems to be an amd64 issue. There is no package difference
between edubuntu and ubuntu so they should have the same issue.

Revision history for this message
Sebastien Bacher (seb128) wrote :
Download full text (3.4 KiB)

Happens on an Ubuntu CD too:

Backtrace was generated from '/usr/bin/users-admin'

Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 46912582180720 (LWP 13104)]
0x00002aaaae697094 in waitpid () from /lib/libpthread.so.0
#0 0x00002aaaae697094 in waitpid () from /lib/libpthread.so.0
#1 0x00002aaaaac26eea in libgnomeui_module_info_get () from
/usr/lib/libgnomeui-2.so.0
#2 <signal handler called>
#3 gst_xml_element_find_first (parent=0xc0, name=0x41f3a3 "passwd_max_life") at
gst-xml.c:85
#4 0x0000000000416755 in gst_xml_set_child_content (parent=0xc0, child=0x41f3a3
"passwd_max_life", val=0x837980 "0") at gst-xml.c:407
#5 0x0000000000414595 in user_update_xml (node=0xc0, data=0x94c1e0,
change_password=1) at user-group-xml.c:483
#6 0x000000000040e997 in user_update (ud=0x8f9620) at user-settings.c:635
#7 0x000000000040c61e in on_user_settings_ok_clicked (button=) at callbacks.c:451
#8 0x00002aaaac86c3c0 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#9 0x00002aaaac87af2c in g_signal_stop_emission () from
/usr/lib/libgobject-2.0.so.0
#10 0x00002aaaac87c3ec in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#11 0x00002aaaac87c7a3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#12 0x00002aaaabb0d8a7 in _gtk_button_set_depressed () from
/usr/lib/libgtk-x11-2.0.so.0
#13 0x00002aaaac86c3c0 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#14 0x00002aaaac87aab1 in g_signal_stop_emission () from
/usr/lib/libgobject-2.0.so.0
#15 0x00002aaaac87c3ec in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#16 0x00002aaaac87c7a3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#17 0x00002aaaabb0ce59 in _gtk_button_paint () from /usr/lib/libgtk-x11-2.0.so.0
#18 0x00002aaaabbc5bc0 in _gtk_marshal_BOOLEAN__BOXED () from
/usr/lib/libgtk-x11-2.0.so.0
#19 0x00002aaaac86c3c0 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#20 0x00002aaaac87b0ab in g_signal_stop_emission () from
/usr/lib/libgobject-2.0.so.0
#21 0x00002aaaac87c127 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#22 0x00002aaaac87c7a3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#23 0x00002aaaabca3ec5 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#24 0x00002aaaabbc3fcb in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#25 0x00002aaaabbc4447 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#26 0x00002aaaac144f3c in _gdk_events_queue () from /usr/lib/libgdk-x11-2.0.so.0
#27 0x00002aaaace7a46d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#28 0x00002aaaace7d60f in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#29 0x00002aaaace7d8ba in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#30 0x00002aaaabbc3830 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#31 0x000000000041aa40 in tool_main_do (tool=) at gst-tool.c:1061
#32 0x000000000040bcf1 in main (argc=) at main.c:254

Thread 1 (Thread 46912582180720 (LWP 13104)):
#0 0x00002aaaae697094 in waitpid () from /lib/libpthread.so.0
No symbol table info available.
#1 0x00002aaaaac26eea in libgnomeui_module_info_get () from
/usr/lib/libgnomeui-2.so.0
No s...

Read more...

Revision history for this message
Carlos Garnacho (carlosg) wrote :

Hi!,

for anyone who's able to reproduce it, I need some info to be able to catch the bug:

- I'd need the contents of *parent in frame 3, those can be got with the next
commands:

(gdb) frame 3
(gdb) print *parent

- It would be great to have the info of both *node and *data in frame 6 too

I've got a hunch that parent will contain invalid data, but I can't see anything
in the code to make it fail like this...

Revision history for this message
Sebastien Bacher (seb128) wrote :

(In reply to comment #5)

> (gdb) frame 3
> (gdb) print *parent

"Cannot access memory at address 0xc0"

> - It would be great to have the info of both *node and *data in frame 6 too

frame #5 rather?

(gdb) p *data
$1 = {login = 0x751dd0 "gnome", uid = 0x817750 "1001", gid = 0x958460 "1001",
  name = 0x751b90 "", location = 0x753be0 "", work_phone = 0x754680 "",
  home_phone = 0x754000 "", other_info = 0x0, group = 0x751dd0 "gnome",
  home = 0x83af00 "/home/gnome", shell = 0x7646d0 "/bin/bash",
  password1 = 0x756a30 "gnome", password2 = 0x758640 "gnome",
  pwd_maxdays = 0x958f40 "0", pwd_mindays = 0x8f7fd0 "0",
  pwd_warndays = 0x82ed40 "0", extra_groups = 0x0}

Revision history for this message
Sebastien Bacher (seb128) wrote :

user_update () calls passwd_set () which breaks node. It doesn't happen with
"buf = g_strdup (crypt_md5 (password, rand_str (salt, 8)));" commented of the code

Revision history for this message
Sebastien Bacher (seb128) wrote :

from valgrind:

==23232== Invalid read of size 8
==23232== at 0x416283: gst_xml_element_find_first (gst-xml.c:85)
==23232== by 0x416994: gst_xml_set_child_content (gst-xml.c:407)
==23232== by 0x414799: user_update_xml (user-group-xml.c:492)
==23232== by 0x40EADD: user_update (user-settings.c:637)
==23232== by 0x40C735: on_user_settings_ok_clicked (callbacks.c:453)
==23232== by 0x138D73BF: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.800.1)
==23232== by 0x138E5F2B: (within /usr/lib/libgobject-2.0.so.0.800.1)
==23232== by 0x138E73EB: g_signal_emit_valist (in
/usr/lib/libgobject-2.0.so.0.800.1)
==23232== by 0x138E77A2: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.800.1)
==23232== by 0x12B798A6: (within /usr/lib/libgtk-x11-2.0.so.0.800.3)
==23232== by 0x138D73BF: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.800.1)
==23232== by 0x138E5AB0: (within /usr/lib/libgobject-2.0.so.0.800.1)

Revision history for this message
Sebastien Bacher (seb128) wrote :

*** Bug 22130 has been marked as a duplicate of this bug. ***

Revision history for this message
Michael Vogt (mvo) wrote :

Both rand_str() and crypt_md5() on it's own work fine (I wrote amd64 test-cases
for both).

Revision history for this message
Michael Vogt (mvo) wrote :

Created an attachment (id=3947)
md5 + passwd test-case

Revision history for this message
Mateusz Łoskot (mloskot) wrote :

Sorry, I'm out of home and office for 3 days.
I can help, do some tests, in Saturday.
Cheers

Revision history for this message
Michael Vogt (mvo) wrote :

Created an attachment (id=4367)
use glibc md5-crypt instead of own md5 crypt

This patch should fix the crash and set a correct password. Would be nice if
someone would confirm

Revision history for this message
Philipp Schroeder (philipp.schroeder) wrote :

I'd be happy to run the test, if you give me instructions on how to run it.
Cheers, Philipp

Revision history for this message
Michael Vogt (mvo) wrote :

Created an attachment (id=4388)
fixed version of the patch

The #if #else ) if probably not needed but so close to release we want to play
save.

Revision history for this message
Michael Vogt (mvo) wrote :

Fixed with the upload of:
gnome-system-tools_1.4.0-0ubuntu9

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.