[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#568526: [gq] gq crashes if it is unable to access the gnome-keyring



Package: gq
Version: 1.3.4-1
Severity: normal

--- Please enter the report below this line. ---
If gnome-keyring is not installed and
File -> Preferences -> Servers -> Some entry -> Connections -> "Ask for
Password on first Connection"
is unchecked, gq crashes when clicking on the "+" to open a server
connection.

The same crash happens if you decline access to the password in the
gnome-keyring dialog!

A backtrace with debugging symbols has been attached.

A shorthand solution would be to let gq depend on gnome-keyring.
In the end upstream should handle a missing gnome-keyring-daemon correctly:
Fall back to safe plain-text-passwords in the gq-config or do not offer
the save password option.

Testers beware:
Purging gnome-keyring does not stop the gnome-keyring-daemon!
You have to kill it or reboot to see gq crashing!

And the "Bind DN"-filed has a "UTF-8 problem"...


--- System information. ---
Architecture: amd64
Kernel:       Linux 2.6.32-px1-amd64

Debian Release: sid

--- Package information. ---
Depends                   (Version) | Installed
===================================-+-==============
libatk1.0-0             (>= 1.20.0) | 1.28.0-1
libc6                      (>= 2.7) | 2.10.2-5
libcairo2                (>= 1.2.4) | 1.8.8-2
libfontconfig1           (>= 2.8.0) | 2.8.0-2
libfreetype6             (>= 2.2.1) | 2.3.11-1
libglade2-0            (>= 1:2.6.1) | 1:2.6.4-1
libglib2.0-0            (>= 2.16.0) | 2.22.4-1
libgnome-keyring0       (>= 2.20.3) | 2.28.2-1
libgtk2.0-0             (>= 2.10.0) | 2.18.6-1
libldap-2.4-2            (>= 2.4.7) | 2.4.17-2.1
libpango1.0-0           (>= 1.14.0) | 1.26.2-1
libssl0.9.8           (>= 0.9.8k-1) | 0.9.8k-8
libxml2                  (>= 2.7.4) | 2.7.6.dfsg-2+b1

$ gdb gq
GNU gdb (GDB) 7.0.1-debian
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.           
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"   
and "show warranty" for details.                                             
This GDB was configured as "x86_64-linux-gnu".                               
For bug reporting instructions, please see:                                  
<http://www.gnu.org/software/gdb/bugs/>...                                   
Reading symbols from /usr/bin/gq...done.                                     
(gdb) run                                                                    
Starting program: /usr/bin/gq                                                
[Thread debugging using libthread_db enabled]                                

** (gq:23455): WARNING **: couldn't communicate with gnome keyring daemon via dbus: The name org.gnome.keyring was not provided by any .service files

** (gq:23455): WARNING **: couldn't communicate with gnome keyring daemon via dbus: The name org.gnome.keyring was not provided by any .service files

** (gq:23455): WARNING **: couldn't communicate with gnome keyring daemon via dbus: The name org.gnome.keyring was not provided by any .service files
** Message: FIXME: implement with GtkTreeView                                                                                                        
** Message: FIXME: implement with GtkTreeView                                                                                                        
** Message: FIXME: implement with GtkTreeView                                                                                                        
** Message: FIXME: implement with GtkTreeView                                                                                                        

** (gq:23455): WARNING **: couldn't communicate with gnome keyring daemon via dbus: The name org.gnome.keyring was not provided by any .service files

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff43ac451 in _IO_vfprintf_internal (s=0x7fffffffd5d0, format=<value optimized out>, ap=0x7fffffffd780) at vfprintf.c:1601
1601    vfprintf.c: No such file or directory.                                                                                    
        in vfprintf.c                                                                                                             
(gdb) bt full                                                                                                                     
#0  0x00007ffff43ac451 in _IO_vfprintf_internal (s=0x7fffffffd5d0, format=<value optimized out>, ap=0x7fffffffd780) at vfprintf.c:1601
        len = <value optimized out>                                                                                                   
        string_malloced = <value optimized out>                                                                                       
        step0_jumps = {0, 3429, 3508, 6312, 6398, 2688, 2781, 5665, 3688, 3864, 4093, 1453, 1532, 1621, 1851, 1898, 3673, 3038, 5571, 4996, 6074, -557, 4172, 4261, 6033, -2786, 5293, 1710, 1779, 
          5586}                                                                                                                                                                                    
        space = 0                                                                                                                                                                                  
        is_short = 0                                                                                                                                                                               
        use_outdigits = 0                                                                                                                                                                          
        step1_jumps = {0, 0, 0, 0, 0, 0, 0, 0, 0, 3864, 4093, 1453, 1532, 1621, 1851, 1898, 3673, 3038, 5571, 4996, 6074, -557, 4172, 4261, 6033, -2786, 5293, 1710, 1779, 0}                      
        group = 0                                                                                                                                                                                  
        prec = <value optimized out>                                                                                                                                                               
        step2_jumps = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4093, 1453, 1532, 1621, 1851, 1898, 3673, 3038, 5571, 4996, 6074, -557, 4172, 4261, 6033, -2786, 5293, 1710, 1779, 0}                         
        string = 0xff00000000000000 <Address 0xff00000000000000 out of bounds>                                                                                                                     
        left = 0                                                                                                                                                                                   
        is_long_double = 0                                                                                                                                                                         
        width = <value optimized out>                                                                                                                                                              
        step3a_jumps = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5944, 0, 0, 0, 1851, 1898, 3673, 3038, 5571, 0, 0, 0, 0, 4261, 0, 0, 0, 0, 0, 0}                                                             
        alt = 0                                                                                                                                                                                    
        showsign = 0                                                                                                                                                                               
        is_long = 0                                                                                                                                                                                
        is_char = 0                                                                                                                                                                                
        pad = <value optimized out>                                                                                                                                                                
        step3b_jumps = {0 <repeats 11 times>, 1532, 0, 0, 1851, 1898, 3673, 3038, 5571, 4996, 6074, -557, 4172, 4261, 6033, -2786, 5293, 0, 0, 0}                                                  
        step4_jumps = {0 <repeats 14 times>, 1851, 1898, 3673, 3038, 5571, 4996, 6074, -557, 4172, 4261, 6033, -2786, 5293, 0, 0, 0}                                                               
        is_negative = <value optimized out>                                                                                                                                                        
        base = 0                                                                                                                                                                                   
        the_arg = {pa_wchar = 1 L'\001', pa_int = 1, pa_long_int = 1, pa_long_long_int = 1, pa_u_int = 1, pa_u_long_int = 1, pa_u_long_long_int = 1, pa_double = 4.9406564584124654e-324,          
          pa_long_double = <invalid float value>, pa_string = 0x1 <Address 0x1 out of bounds>, pa_wstring = 0x1 <Address 0x1 out of bounds>, pa_pointer = 0x1, pa_user = 0x1}                      
        spec = 115 's'                                                                                                                                                                             
        _buffer = {__routine = 0x1, __arg = 0x7e5a60, __canceltype = -10928, __prev = 0x0}                                                                                                         
        _avail = 0                                                                                                                                                                                 
        thousands_sep = 0x0                                                                                                                                                                        
        grouping = 0xffffffffffffffff <Address 0xffffffffffffffff out of bounds>                                                                                                                   
        done = 18                                                                                                                                                                                  
        f = 0x4619ec "s"                                                                                                                                                                           
        lead_str_end = 0x4619eb "%s"                                                                                                                                                               
        work_buffer = "\000\000\000\000\377\177\000\000\377\377\377\377\000\000\000\000\377\377\377\377\000\000\000\000\270\324\377\377\377\177\000\000\332WF\000\000\000\000\000(\025\000\000\000\000\000\000\001\000\000\000\000\000\000\000\244\201", '\000' <repeats 22 times>"\275, \000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\b\000\000\000\000\062\071\070\002\347kK\000\000\000\000\200\003\270\066\000\000\000\000\002\347kK\000\000\000\000F\326\216\063\000\000\000\000\002\347kK\000\000\000\000\020\000\000\000\060\000\000\000P\324\377\377\377\177\000\000\220\323\377\377\377\177\000\000\000\000\000\000\000\000\000\000\220\325\377\377\377\177\000\000h\351@\364\377\177\000\000\340\266g\000\000\000\000\000\355X@\364\377\177\000\377\360\006s\000\000\000\000\000r\000`\377\377\377\377\377\000\000\000\000\000\000\000\000p\315\377\377\377\177\000\000\002\000\000\000N.\314b\036\004`\377\377\377\377\377\272\035lK\000\000\000\000\303z\f\000\000\000\000\000\t\000\000\000\0---Type <return> to continue, or q <return> to quit---                                                                                                                                               
00\000\000\000\340"...                                                                                                                                                                               
        workstart = 0x0                                                                                                                                                                              
        workend = 0x7fffffffd488 "\250\251\375\367\004"                                                                                                                                              
        ap_save = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fffffffd880, reg_save_area = 0x7fffffffd7a0}}                                                                             
        nspecs_done = <value optimized out>                                                                                                                                                          
        save_errno = <value optimized out>                                                                                                                                                           
        readonly_format = 0                                                                                                                                                                          
        jump_table = "\001\000\000\004\000\016\000\006\000\000\a\002\000\003\t\000\005\b\b\b\b\b\b\b\b\b\000\000\000\000\000\000\000\032\000\031\000\023\023\023\000\035\000\000\f\000\000\000\000\000\000\025\000\000\000\000\022\000\r\000\000\000\000\000\000\032\000\024\017\023\023\023\n\017\034\000\v\030\027\021\026\f\000\025\033\020\000\000\022\000\r"                                         
        __PRETTY_FUNCTION__ = "_IO_vfprintf_internal"                                                                                                                                                
#1  0x00007ffff43cd762 in _IO_vsnprintf (string=0x8ab260 "Additional error: unauthenticated bind (DN with no password) disallo", maxlen=<value optimized out>,                                       
    format=0x4619d9 "Additional error: %s", args=0x7fffffffd780) at vsnprintf.c:120                                                                                                                  
        sf = {f = {_sbf = {_f = {_flags = -72515583, _IO_read_ptr = 0x8ab260 "Additional error: unauthenticated bind (DN with no password) disallo",                                                 
                _IO_read_end = 0x8ab260 "Additional error: unauthenticated bind (DN with no password) disallo",                                                                                      
                _IO_read_base = 0x8ab260 "Additional error: unauthenticated bind (DN with no password) disallo",                                                                                     
                _IO_write_base = 0x8ab260 "Additional error: unauthenticated bind (DN with no password) disallo", _IO_write_ptr = 0x8ab272 "unauthenticated bind (DN with no password) disallo",     
                _IO_write_end = 0x8ab2a7 "", _IO_buf_base = 0x8ab260 "Additional error: unauthenticated bind (DN with no password) disallo", _IO_buf_end = 0x8ab2a7 "", _IO_save_base = 0x0,         
                _IO_backup_base = 0x0, _IO_save_end = 0x0, _markers = 0x0, _chain = 0x0, _fileno = -194285880, _flags2 = 0, _old_offset = 0, _cur_column = 0, _vtable_offset = 0 '\000',             
                _shortbuf = "", _lock = 0x0, _offset = 140737294069344, _codecvt = 0x4d, _wide_data = 0x7fffffffd7b0, _freeres_list = 0x0, _freeres_buf = 0x7ffff46b6e60, _freeres_size = 128,       
                _mode = -1, _unused2 = "\377\177\000\000~\000\000\000\000\000\000\000G\000\000\000\000\000\000"}, vtable = 0x7ffff46b3fc0}, _s = {_allocate_buffer = 0, _free_buffer = 0x80}},       
          overflow_buf = "I\000\000\000\000\000\000\000\331\031F\000\000\000\000\000\200\327\377\377\377\177\000\000\277\376\060\365\377\177\000\000I\000\000\000\000\000\000\000\331\031F\000\000\000\000\000\200\341|\000\000\000\000\000\067\231\062\365\377\177\000"}                                                                                                                                 
        ret = 0                                                                                                                                                                                      
#2  0x000000000041e762 in error_push_production_v (context=126, fmt=0x4619d9 "Additional error: %s", ap=0x7fffffffd780) at errorchain.c:125                                                          
        chain = <value optimized out>                                                                                                                                                                
        str = 0x7ce180                                                                                                                                                                               
        n = 71                                                                                                                                                                                       
        a = 73                                                                                                                                                                                       
#3  0x000000000041e94d in error_push_debug (file=0x4619b2 "errorchain.c", line=<value optimized out>, context=126, fmt=0xffffffffffffffff <Address 0xffffffffffffffff out of bounds>)                
    at errorchain.c:196                                                                                                                                                                              
        ap = {{gp_offset = 48, fp_offset = 48, overflow_arg_area = 0x7fffffffd880, reg_save_area = 0x7fffffffd7a0}}                                                                                  
#4  0x000000000041e9e1 in push_ldap_addl_error (ld=<value optimized out>, context=126) at errorchain.c:218                                                                                           
        error_msg = 0x8bb750 "unauthenticated bind (DN with no password) disallowed"                                                                                                                 
#5  0x0000000000438788 in do_ldap_connect (ld_out=<value optimized out>, server=<value optimized out>, open_context=<value optimized out>, flags=<value optimized out>) at gq-server.c:450           
        ld = 0x8bf640                                                                                                                                                                                
        rc = 53                                                                                                                                                                                      
        i = 30                                                                                                                                                                                       
        nettimeout = {tv_sec = 15, tv_usec = 0}                                                                                                                                                      
#6  0x0000000000438b9a in open_connection_ex (open_context=126, server=0x6b8980, ldap_errno=0x0) at gq-server.c:521                                                                                  
        ld = 0x0                                                                                                                                                                                     
        rc = <value optimized out>                                                                                                                                                                   
---Type <return> to continue, or q <return> to quit---                                                                                                                                               
#7  0x000000000044cff4 in get_suffixes (error_context=126, server=0x6b8980) at gq-utilities.c:1137                                                                                                   
        ld = <value optimized out>                                                                                                                                                                   
        res = <value optimized out>                                                                                                                                                                  
        e = <value optimized out>                                                                                                                                                                    
        msg = <value optimized out>                                                                                                                                                                  
        i = <value optimized out>                                                                                                                                                                    
        num_suffixes = <value optimized out>                                                                                                                                                         
        vals = 0x12                                                                                                                                                                                  
        ldapv3_config = {0x4679d7 "namingcontexts", 0x0}                                                                                                                                             
        suffixes = <value optimized out>                                                                                                                                                             
#8  0x0000000000428e14 in server_browse_entry_expand (e=0x79a340, error_context=126, model=0x7a1d80, iter=0x7fffffffdad0, dummy=<value optimized out>) at gq-browser-node-server.c:93                
        suffixes = <value optimized out>                                                                                                                                                             
        next = <value optimized out>                                                                                                                                                                 
        entry = 0x79a340                                                                                                                                                                             
        __PRETTY_FUNCTION__ = "server_browse_entry_expand"                                                                                                                                           
#9  0x00000000004240e5 in browser_model_iter_nth_child (model=0x7a1d80, iter=0x7fffffffdab0, parent=0x7fffffffdad0, child=0) at gq-browser-model.c:360                                               
        node = 0x79a340                                                                                                                                                                              
        ctxt = 126                                                                                                                                                                                   
        __PRETTY_FUNCTION__ = "browser_model_iter_nth_child"                                                                                                                                         
#10 0x00007ffff75cbffa in gtk_tree_view_real_expand_row (tree_view=0x7a4070, path=0xa18ec0, tree=0x7a26c0, node=0x7a1890, open_all=0, animate=1) at /gtk+2.0-2.18.6/gtk/gtktreeview.c:12005          
        iter = {stamp = 0, user_data = 0x7a1cc0, user_data2 = 0x79a340, user_data3 = 0x0}                                                                                                            
        temp = {stamp = 0, user_data = 0x0, user_data2 = 0x0, user_data3 = 0x0}                                                                                                                      
        expand = 0                                                                                                                                                                                   
#11 0x00007ffff75dd4d7 in gtk_tree_view_button_release (widget=0x7a4070, event=<value optimized out>) at /gtk+2.0-2.18.6/gtk/gtktreeview.c:3019                                                      
        path = 0xa18ec0                                                                                                                                                                              
#12 0x00007ffff74eb538 in _gtk_marshal_BOOLEAN__BOXED (closure=0x6b3a00, return_value=0x7fffffffdd10, n_param_values=<value optimized out>, param_values=0xa01500,                                   
    invocation_hint=<value optimized out>, marshal_data=0x7ffff75dd380) at /gtk+2.0-2.18.6/gtk/gtkmarshalers.c:84                                                                                    
        data1 = 0x7a4070                                                                                                                                                                             
        data2 = 0x30                                                                                                                                                                                 
        v_return = <value optimized out>                                                                                                                                                             
        __PRETTY_FUNCTION__ = "_gtk_marshal_BOOLEAN__BOXED"                                                                                                                                          
#13 0x00007ffff57a244e in IA__g_closure_invoke (closure=0x6b3a00, return_value=0x7fffffffdd10, n_param_values=2, param_values=0xa01500, invocation_hint=0x7fffffffdcd0)                              
    at /tmp/buildd/glib2.0-2.22.4/gobject/gclosure.c:767                                                                                                                                             
        marshal = 0                                                                                                                                                                                  
        marshal_data = 0xff00000000000000                                                                                                                                                            
        __PRETTY_FUNCTION__ = "IA__g_closure_invoke"                                                                                                                                                 
#14 0x00007ffff57b61dd in signal_emit_unlocked_R (node=0x6b3a70, detail=<value optimized out>, instance=<value optimized out>, emission_return=<value optimized out>,                                
    instance_and_params=<value optimized out>) at /tmp/buildd/glib2.0-2.22.4/gobject/gsignal.c:3285                                                                                                  
        accumulator = 0x2                                                                                                                                                                            
        emission = {next = 0x0, instance = 0x7a4070, ihint = {signal_id = 37, detail = 0, run_type = G_SIGNAL_RUN_LAST}, state = EMISSION_RUN, chain_type = 7961648}                                 
        class_closure = 0x6b3a00                                                                                                                                                                     
---Type <return> to continue, or q <return> to quit---                                                                                                                                               
        handler_list = 0x0                                                                                                                                                                           
        return_accu = <value optimized out>                                                                                                                                                          
        accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0,    
              v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}                                                                                                  
        signal_id = 37                                                                                                                                                                               
        max_sequential_handler_number = 2                                                                                                                                                            
        return_value_altered = 0                                                                                                                                                                     
#15 0x00007ffff57b776a in IA__g_signal_emit_valist (instance=0x7a4070, signal_id=<value optimized out>, detail=0, var_args=0x7fffffffdec0) at /tmp/buildd/glib2.0-2.22.4/gobject/gsignal.c:2990      
        return_value = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0,        
              v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}                                                                                      
        error = <value optimized out>                                                                                                                                                                
        signal_return_type = 20                                                                                                                                                                      
        param_values = <value optimized out>                                                                                                                                                         
        node = 0x6b3a70                                                                                                                                                                              
        i = <value optimized out>                                                                                                                                                                    
        n_params = <value optimized out>                                                                                                                                                             
        __PRETTY_FUNCTION__ = "IA__g_signal_emit_valist"                                                                                                                                             
#16 0x00007ffff57b7dd3 in IA__g_signal_emit (instance=0xff00000000000000, signal_id=4594137, detail=48) at /tmp/buildd/glib2.0-2.22.4/gobject/gsignal.c:3037                                         
        var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffdfa0, reg_save_area = 0x7fffffffdee0}}                                                                            
#17 0x00007ffff75f26cf in gtk_widget_event_internal (widget=0x7a4070, event=0x9d7cf0) at /gtk+2.0-2.18.6/gtk/gtkwidget.c:4767                                                                        
        signal_num = <value optimized out>                                                                                                                                                           
        return_val = 0                                                                                                                                                                               
#18 0x00007ffff74e3ae3 in IA__gtk_propagate_event (widget=0x7a4070, event=0x9d7cf0) at /gtk+2.0-2.18.6/gtk/gtkmain.c:2417                                                                            
        tmp = 0x0                                                                                                                                                                                    
        handled_event = 8011888                                                                                                                                                                      
        __PRETTY_FUNCTION__ = "IA__gtk_propagate_event"                                                                                                                                              
#19 0x00007ffff74e4ab3 in IA__gtk_main_do_event (event=0x9d7cf0) at /gtk+2.0-2.18.6/gtk/gtkmain.c:1622                                                                                               
        event_widget = <value optimized out>                                                                                                                                                         
        grab_widget = 0x7a4070                                                                                                                                                                       
        window_group = 0x7c3d60                                                                                                                                                                      
        rewritten_event = 0x0                                                                                                                                                                        
        tmp_list = <value optimized out>                                                                                                                                                             
        __PRETTY_FUNCTION__ = "IA__gtk_main_do_event"                                                                                                                                                
#20 0x00007ffff7159c9c in gdk_event_dispatch (source=<value optimized out>, callback=<value optimized out>, user_data=<value optimized out>) at /gtk+2.0-2.18.6/gdk/x11/gdkevents-x11.c:2372         
        display = <value optimized out>                                                                                                                                                              
        event = <value optimized out>
#21 0x00007ffff530790e in g_main_dispatch (context=0x6ab310) at /tmp/buildd/glib2.0-2.22.4/glib/gmain.c:1960
        dispatch = 0x7ffff7159c50 <gdk_event_dispatch>
        user_data = 0x0
        callback = 0
        cb_funcs = 0x0
---Type <return> to continue, or q <return> to quit---
        cb_data = 0x0
        current_source_link = {data = 0x6ab290, next = 0x0}
        source = 0x6ab290
        current = 0x780350
        i = 0
#22 IA__g_main_context_dispatch (context=0x6ab310) at /tmp/buildd/glib2.0-2.22.4/glib/gmain.c:2513
No locals.
#23 0x00007ffff530b2c8 in g_main_context_iterate (context=0x6ab310, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>)
    at /tmp/buildd/glib2.0-2.22.4/glib/gmain.c:2591
        max_priority = 2147483647
        timeout = -1
        some_ready = 1
        nfds = 2
        allocated_nfds = -181306096
        fds = <value optimized out>
        __PRETTY_FUNCTION__ = "g_main_context_iterate"
#24 0x00007ffff530b725 in IA__g_main_loop_run (loop=0x7f9fe0) at /tmp/buildd/glib2.0-2.22.4/glib/gmain.c:2799
        self = 0x702dd0
        __PRETTY_FUNCTION__ = "IA__g_main_loop_run"
#25 0x00007ffff74e4f87 in IA__gtk_main () at /gtk+2.0-2.18.6/gtk/gtkmain.c:1218
        tmp_list = 0x67a0b0
        functions = 0x0
        init = 0x7fffffffe248
        loop = <value optimized out>
#26 0x0000000000421608 in main (argc=1, argv=0x7fffffffe348) at gq.c:162
        ctxt = 0x67a0b0
        error = 0x0
        p = <value optimized out>
(gdb) q
A debugging session is active.

        Inferior 1 [process 23455] will be killed.

Quit anyway? (y or n) y
$

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: