GNOME Bugzilla – Bug 331633
Evolution crashes upon starting up on Solaris
Last modified: 2013-09-14 16:50:03 UTC
Steps to reproduce: Start Evolution, it crashes before showing GUI. Stack trace: current thread: t@1 [1] _waitid(0x0, 0x7138, 0xffbfe2b8, 0x3, 0xff3ee698, 0x1), at 0xfbe9dc28 [2] _waitpid(0x7138, 0xffbfe41c, 0x0, 0x7138, 0xfb882000, 0x0), at 0xfbe665d8 [3] waitpid(0x7138, 0xffbfe41c, 0x0, 0x0, 0xfb882000, 0xfbeeab00), at 0xfbe90ac4 [4] libgnomeui_segv_handle(0xb, 0x1a38, 0x444cc, 0x1, 0xfe226dc4, 0xfe220798), at 0xfe1dc39c =>[5] segv_redirect(sig = 11), line 422 in "main.c" [6] __sighndlr(0xb, 0x0, 0xffbfe618, 0x39190, 0x400, 0x1), at 0xfbe9c874 ---- called from signal handler with signal 11 (SIGSEGV) ------ [7] strncpy(0x0, 0x1c3b00, 0xfffffffb, 0x1b8667, 0x5, 0x80808080), at 0xfbe30ad8 [8] g_strndup(0x1b8668, 0xffffffff, 0x0, 0x80808080, 0xff0000, 0x0), at 0xfbf4e4f0 [9] find_domain_dn(domain = (nil)), line 1026 in "e2k-global-catalog.c" [10] lookup_passwd_max_age(gc = 0x1bed30, op = 0xffbfeb04), line 1047 in "e2k-global-catalog.c" [11] find_passwd_exp_period(account = 0x1a9ba8, entry = 0x1f0db8), line 1054 in "exchange-account.c" [12] exchange_account_check_password_expiry(account = 0x1a9ba8), line 1848 in "exchange-account.c" [13] exchange_config_listener_authenticate(ex_conf_listener = 0x184a78, account = 0x1a9ba8), line 764 in "exchange-config-listener.c" [14] account_added(account_list = 0x184a78, account = 0x1bb288), line 826 in "exchange-config-listener.c" [15] g_closure_invoke(0x0, 0x0, 0x2, 0xffbfef30, 0xffbfedc4, 0x1033e0), at 0xfd4fca88 [16] signal_emit_unlocked_R(0x1, 0x555cc, 0x18, 0x0, 0x0, 0xfd53bcb8), at 0xfd5146bc [17] g_signal_emit_valist(0x184a78, 0xc00, 0xffbfef48, 0xffbff164, 0x15eb08, 0xfd53bcb8), at 0xfd513350 [18] g_signal_emit(0x184a78, 0x18, 0x0, 0x1bb288, 0xfb882000, 0x1), at 0xfd513694 [19] gconf_accounts_changed(client = 0x7ac38, cnxn_id = 989855750U, entry = (nil), user_data = 0x184a78), line 175 in "e-account-list.c" [20] e_account_list_construct(account_list = 0x184a78, gconf = 0x7ac38), line 255 in "e-account-list.c" [21] idle_construct(data = 0x184a78), line 1038 in "exchange-config-listener.c" [22] g_main_dispatch(0x74480, 0x0, 0x5554c, 0x555d0, 0xfbf35da8, 0x1958b0), at 0xfbf31d68 [23] g_main_context_dispatch(0x74480, 0x1000, 0x555cc, 0x13d0, 0x555d0, 0x55544), at 0xfbf33378 [24] g_main_context_iterate(0x1, 0x1, 0x1, 0x74480, 0x74488, 0x7), at 0xfbf33888 [25] g_main_loop_run(0x1b32f8, 0x0, 0x1, 0x569c8, 0x1b3300, 0x1400), at 0xfbf34174 [26] bonobo_main(0x0, 0x374, 0x0, 0xfe065178, 0x41d7c, 0x0), at 0xfe02345c [27] main(argc = 1, argv = 0xffbff6ac), line 603 in "main.c" Other information: This only happens when kerberos 5 (Sun Kerberos 5 which is based on MIT kerberos) is enabled.
Created attachment 59623 [details] [review] Patch
Created attachment 60295 [details] [review] New Patch
According to fejj's comment on e-p.. another idea is simply doing: if (dn_value->str[0]) no need to strlen it.
Created attachment 60743 [details] [review] Patch modified according to Jeffrey's comment
Patch looks good to commit. Approving.
Committed the patch to CVS HEAD.