pidgin segfault while removing account

Bug #321800 reported by Fernando Miguel
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Pidgin
New
Undecided
Unassigned
pidgin (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

Binary package hint: pidgin

While removing a WLM (msn pecan plugin) account pidgin segfaults!
I had already removed pecan plugin, so the account was marked as unknown.
happend 3 times, and I got a bt full.

$ gdb --args pidgin -n
GNU gdb 6.8-debian
Copyright (C) 2008 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"...
(gdb) r
Starting program: /usr/bin/pidgin -n
[Thread debugging using libthread_db enabled]
[New Thread 0x7fb76bd7f7d0 (LWP 18110)]
[New Thread 0x7fb755344950 (LWP 18118)]
[New Thread 0x7fb74b078950 (LWP 18132)]
[Thread 0x7fb74b078950 (LWP 18132) exited]
[New Thread 0x7fb74a877950 (LWP 18133)]
[Thread 0x7fb74a877950 (LWP 18133) exited]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fb76bd7f7d0 (LWP 18110)]
0x00007fb769752b7c in purple_blist_remove_buddy (buddy=0x1633970) at ../../libpurple/blist.c:1875
1875 ../../libpurple/blist.c: No such file or directory.
 in ../../libpurple/blist.c
(gdb) q

$ gdb --args pidgin -n
GNU gdb 6.8-debian
Copyright (C) 2008 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"...
(gdb) handle SIGPIPE nostop
Signal Stop Print Pass to program Description
SIGPIPE No Yes Yes Broken pipe
(gdb) r
Starting program: /usr/bin/pidgin -n
[Thread debugging using libthread_db enabled]
[New Thread 0x7f31868ae7d0 (LWP 28965)]
[New Thread 0x7f316fe73950 (LWP 29011)]
[New Thread 0x7f3165ba7950 (LWP 29064)]
[Thread 0x7f3165ba7950 (LWP 29064) exited]
[New Thread 0x7f31653a6950 (LWP 29065)]
[Thread 0x7f31653a6950 (LWP 29065) exited]

Program received signal SIGPIPE, Broken pipe.

Program received signal SIGPIPE, Broken pipe.

Program received signal SIGPIPE, Broken pipe.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f31868ae7d0 (LWP 28965)]
0x00007f3184281b7c in purple_blist_remove_buddy (buddy=0x1c18c30) at ../../libpurple/blist.c:1875
1875 ../../libpurple/blist.c: No such file or directory.
 in ../../libpurple/blist.c
(gdb) bt full
#0 0x00007f3184281b7c in purple_blist_remove_buddy (buddy=0x1c18c30) at ../../libpurple/blist.c:1875
 ops = (PurpleBlistUiOps *) 0x6f1d80
 node = (PurpleBlistNode *) 0x1c18c30
 cnode = (PurpleBlistNode *) 0x1c18ab0
 gnode = (PurpleBlistNode *) 0x1c17120
 contact = (PurpleContact *) 0x1c18ab0
 group = (PurpleGroup *) 0x1c17120
 hb = {name = 0x1b9e4a0 "�\215�\001", account = 0x16c0f60, group = 0x1c17120}
 prpl = (PurplePlugin *) 0x0
 prpl_info = (PurplePluginProtocolInfo *) 0x16c0f60
 __PRETTY_FUNCTION__ = "purple_blist_remove_buddy"
#1 0x00007f318427c443 in purple_accounts_delete (account=0x16c0f60) at ../../libpurple/account.c:2533
 b = (PurpleBuddy *) 0x1c18c30
 bnode_next = (PurpleBlistNode *) 0x0
 cnode_next = (PurpleBlistNode *) 0x0
 gnode = (PurpleBlistNode *) 0x1c17120
 cnode = (PurpleBlistNode *) 0x1c18ab0
 bnode = (PurpleBlistNode *) 0x1c18c30
 iter = (GList *) 0x16c0f60
 __PRETTY_FUNCTION__ = "purple_accounts_delete"
#2 0x0000000000436f2c in delete_account_cb (account=0x16c0f60) at ../../pidgin/gtkaccount.c:1837
No locals.
#3 0x000000000049e490 in action_response_cb (dialog=0x62a0570, id=1, data=0x73609a0) at ../../pidgin/gtkrequest.c:136
No locals.
#4 0x00007f3183dc42cd in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#5 0x00007f3183ddb0b0 in ?? () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#6 0x00007f3183ddc7a9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#7 0x00007f3183ddcd13 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#8 0x00007f3183dc42cd in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#9 0x00007f3183ddb0b0 in ?? () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#10 0x00007f3183ddc7a9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#11 0x00007f3183ddcd13 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#12 0x00007f3184f1b03d in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#13 0x00007f3183dc42cd in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#14 0x00007f3183dda9de in ?? () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#15 0x00007f3183ddc7a9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#16 0x00007f3183ddcd13 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#17 0x00007f3184f1a020 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#18 0x00007f3184fda613 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#19 0x00007f3183dc42cd in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#20 0x00007f3183ddad94 in ?? () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#21 0x00007f3183ddc658 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#22 0x00007f3183ddcd13 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#23 0x00007f31850f8d4e in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#24 0x00007f3184fd17fd in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#25 0x00007f3184fd2adb in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#26 0x00007f3184c2f16c in ?? () from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
#27 0x00007f318392630b in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#28 0x00007f3183929acd in ?? () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#29 0x00007f3183929ffd in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#30 0x00007f3184fd2f27 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#31 0x000000000048aed3 in main (argc=2, argv=0x7fff8e8ecd58) at ../../pidgin/gtkmain.c:883
 opt_help = 0
 opt_login = 0
 opt_nologin = 1
 opt_nocrash = 0
 opt_version = 0
 opt_si = 1
 opt_config_dir_arg = 0x0
 opt_login_arg = 0x0
---Type <return> to continue, or q <return> to quit---
 opt_session_arg = 0x0
 search_path = 0x15dfbd0 "�#^\001"
 accounts = (GList *) 0x0
 sig_indx = 1
 sigset = {__val = {81927, 0 <repeats 15 times>}}
 prev_sig_disp = (void (*)(int)) 0
 errmsg = "\030^�\2031\177\000\000\004\000\000\000\000\000\000\000�)\214\2061\177\000\000M�m\2061\177\000\000\000\000\000\000\000\000\000\0009", '\0' <repeats 15 times>, "&�m\2061\177\000\000��\216\216�\177\000\000\020�m\2061\177\000\000��\216\216�\177\000\000��\216\216�\177\000\000��\216\216�\177\000\000\000\000\000\000\000\000\000\000\020�\216\216�\177\000\000��m\2061\177\000\000�z\213\2061\177\000\000\000\000\214\2061\177", '\0' <repeats 18 times>, "\030^�\2031\177\000\000\004\000\000\000\000\000\000\000�)\214\2061\177\000\000\000\000@Y\035\035��\000\000\026��\fc�)\000\000\000\000\000\000\000\030", '\0' <repeats 11 times>...
 segfault_message_tmp = 0x1574190 "/home/bugabundo/.purple"
 error = (GError *) 0x0
 opt = -1
 gui_check = 1
 debug_enabled = 0
 migration_failed = 0
 active_accounts = (GList *) 0x6219620
 long_options = {{name = 0x4d40eb "config", has_arg = 1, flag = 0x0, val = 99}, {name = 0x4d40f2 "debug",
    has_arg = 0, flag = 0x0, val = 100}, {name = 0x4d40f8 "help", has_arg = 0, flag = 0x0, val = 104}, {
    name = 0x4d40fd "login", has_arg = 2, flag = 0x0, val = 108}, {name = 0x4d4103 "multiple", has_arg = 0, flag = 0x0,
    val = 109}, {name = 0x4d410c "nologin", has_arg = 0, flag = 0x0, val = 110}, {name = 0x4d4114 "nocrash", has_arg = 0,
    flag = 0x0, val = 120}, {name = 0x4d411c "session", has_arg = 1, flag = 0x0, val = 115}, {name = 0x4d3e12 "version",
    has_arg = 0, flag = 0x0, val = 118}, {name = 0x4d4124 "display", has_arg = 1, flag = 0x0, val = 68}, {
    name = 0x4d412c "sync", has_arg = 0, flag = 0x0, val = 83}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}

ProblemType: Bug
Architecture: amd64
DistroRelease: Ubuntu 9.04
NonfreeKernelModules: nvidia
Package: pidgin 1:2.5.3-0ubuntu2
ProcEnviron:
 SHELL=/bin/bash
 PATH=(custom, no user)
 LANG=en_US.UTF-8
SourcePackage: pidgin
Uname: Linux 2.6.28-5-generic x86_64

Tags: apport-bug
Revision history for this message
Fernando Miguel (fernandomiguel) wrote :
description: updated
Revision history for this message
Fernando Miguel (fernandomiguel) wrote :

manually removing it from accounts.xml fixed it for me.

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

Thanks BUGabundo, the crash report looks complete and seems obvious why it crashed. Will send this upstream shortly.

Changed in pidgin:
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
Chris Coulson (chrisccoulson) wrote :

This crash has been fixed in the latest version of Pidgin by checking that the PurplePlugin object is not NULL before trying to use it. Please feel free to reopen this if you can still recreate the problem with the latest version.

Changed in pidgin:
status: Confirmed → Fix Released
Revision history for this message
Yann (yourfrenchman) wrote :

Hi,

I have the problem with the latest version : it does open and closes immediately, so i can't use it anymore.

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

Other bug subscribers

Remote bug watches

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