[Pidgin] #509: Crash when deleting buddy and cab plugin is loaded

Pidgin trac at pidgin.im
Tue May 1 20:43:07 EDT 2007


#509: Crash when deleting buddy and cab plugin is loaded
---------------------------+------------------------------------------------
  Reporter:  thoemy        |       Owner:  deryni
      Type:  defect        |      Status:  new   
  Priority:  minor         |   Milestone:        
 Component:  pidgin (gtk)  |     Version:  2.0   
Resolution:                |    Keywords:        
   Pending:  0             |  
---------------------------+------------------------------------------------
Old description:

> Pidgin crashes sometimes when deleting a buddy. It seems to happen
> randomly but only if the cab plugin is loaded.
>

> {{{
> thoemy at thoemy:~$ gdb pidgin
> GNU gdb 6.6-debian
> Copyright (C) 2006 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you
> are
> welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for
> details.
> This GDB was configured as "i486-linux-gnu"...
> Using host libthread_db library "/lib/i686/cmov/libthread_db.so.1".
> (gdb) run
> Starting program: /home/thoemy/.local/bin/pidgin
> Failed to read a valid object file image from memory.
> [Thread debugging using libthread_db enabled]
> [New Thread -1223272752 (LWP 22982)]
> [New Thread -1238946928 (LWP 22987)]
> [Thread -1238946928 (LWP 22987) exited]
> [New Thread -1247339632 (LWP 22988)]
> [Thread -1247339632 (LWP 22988) exited]
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread -1223272752 (LWP 22982)]
> 0xb750c8b0 in purple_account_get_protocol_id (account=0xffffffff)
>     at account.c:1726
> 1726            if (!strcmp(account->protocol_id, "prpl-oscar")) {
> (gdb) bt full
> #0  0xb750c8b0 in purple_account_get_protocol_id (account=0xffffffff)
>     at account.c:1726
>         __PRETTY_FUNCTION__ = "purple_account_get_protocol_id"
> #1  0xb6f6f5ea in get_stats_for (buddy=0x82d5c90) at cap.c:37
>         buddy_name = <value optimized out>
>         stats = (CapStatistics *) 0x8979c00
>         __PRETTY_FUNCTION__ = "get_stats_for"
> #2  0xb6f6fa05 in drawing_tooltip (node=0xffffffff, text=0x82d7690,
> full=1)
>     at cap.c:458
>         stats = <value optimized out>
> #3  0xb7547516 in purple_marshal_VOID__POINTER_POINTER_UINT (
>     cb=0xb6f6f9d0 <drawing_tooltip>, args=0xbfda6048
> "\220\\-\b\220v-\b\001",
>     data=0x0, return_val=0x0) at signals.c:669
> No locals.
> #4  0xb7547e65 in purple_signal_emit_vargs (instance=0x80ef5b0,
>     signal=0x80df3ac "drawing-tooltip",
>     args=0xbfda6048 "\220\\-\b\220v-\b\001") at signals.c:481
>         handler_data = (PurpleSignalHandlerData *) 0x82d4cf0
>         l = <value optimized out>
>         l_next = (GList *) 0x0
>         tmp = 0xbfda6048 "\220\\-\b\220v-\b\001"
>         __PRETTY_FUNCTION__ = "purple_signal_emit_vargs"
> #5  0xb7547f9c in purple_signal_emit (instance=0xb,
>     signal=0x82d4cf0 "XC}\bP\201J�") at signals.c:433
>         args = 0xbfda6048 "\220\\-\b\220v-\b\001"
>         __PRETTY_FUNCTION__ = "purple_signal_emit"
> #6  0x08078ff9 in create_tip_for_node (node=0x82d5c90, full=1)
>     at gtkblist.c:3058
>         str = (GString *) 0x82d7690
>         prpl = <value optimized out>
>         tmp = <value optimized out>
>         tooltip_text = <value optimized out>
>         account = <value optimized out>
>         tmp = <value optimized out>
>         node_name = <value optimized out>
> #7  0x08079b7a in pidgin_blist_tooltip_timeout (tv=0x84aa018)
>     at gtkblist.c:2615
>         td = (struct tooltip_data *) 0x0
>         child = (PurpleBlistNode *) 0x82d5c90
>         b = (PurpleBuddy *) 0x82d5c90
>         max_text_width = 0
>         max_avatar_width = 0
>         path = (GtkTreePath *) 0x82d6980
>         iter = {stamp = 699106302, user_data = 0x83cc168, user_data2 =
> 0x0,
>   user_data3 = 0x0}
>         node = <value optimized out>
>         val = {g_type = 68, data = {{v_int = 137190432, v_uint =
> 137190432,
>       v_long = 137190432, v_ulong = 137190432, v_int64 = 137190432,
>       v_uint64 = 137190432, v_float = 5.21685862e-34,
>       v_double = 6.7781079389319617e-316, v_pointer = 0x82d5c20}, {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}}}
>         scr_w = <value optimized out>
>         w = <value optimized out>
>         h = 0
>         x = <value optimized out>
>         y = <value optimized out>
>         mon_num = <value optimized out>
>         screen = (GdkScreen *) 0x0
>         mon_size = {x = -1219799387, y = -1209318868, width = 8,
>   height = -1076207336}
> #8  0xb75c7116 in ?? () from /usr/lib/libglib-2.0.so.0
> No symbol table info available.
> #9  0x084aa018 in ?? ()
> No symbol table info available.
> #10 0xb7f83484 in ?? () from /usr/lib/libdbus-1.so.3
> No symbol table info available.
> #11 0xbfda6168 in ?? ()
> No symbol table info available.
> ---Type <return> to continue, or q <return> to quit---
> #12 0xb762d1e0 in ?? () from /usr/lib/libglib-2.0.so.0
> No symbol table info available.
> #13 0xb74b40d0 in ?? () from /lib/i686/cmov/libpthread.so.0
> No symbol table info available.
> #14 0x0891fba0 in ?? ()
> No symbol table info available.
> #15 0xbfda6168 in ?? ()
> No symbol table info available.
> #16 0xb75dede2 in g_slist_prepend () from /usr/lib/libglib-2.0.so.0
> No symbol table info available.
> #17 0xb75c6b51 in g_main_context_dispatch () from
> /usr/lib/libglib-2.0.so.0
> No symbol table info available.
> #18 0xb75c9bc6 in ?? () from /usr/lib/libglib-2.0.so.0
> No symbol table info available.
> #19 0x08111e10 in ?? ()
> No symbol table info available.
> #20 0x00000000 in ?? ()
> No symbol table info available.
> }}}

New description:

 Pidgin crashes sometimes when deleting a buddy. It seems to happen
 randomly but only if the cap plugin is loaded.


 {{{
 thoemy at thoemy:~$ gdb pidgin
 GNU gdb 6.6-debian
 Copyright (C) 2006 Free Software Foundation, Inc.
 GDB is free software, covered by the GNU General Public License, and you
 are
 welcome to change it and/or distribute copies of it under certain
 conditions.
 Type "show copying" to see the conditions.
 There is absolutely no warranty for GDB.  Type "show warranty" for
 details.
 This GDB was configured as "i486-linux-gnu"...
 Using host libthread_db library "/lib/i686/cmov/libthread_db.so.1".
 (gdb) run
 Starting program: /home/thoemy/.local/bin/pidgin
 Failed to read a valid object file image from memory.
 [Thread debugging using libthread_db enabled]
 [New Thread -1223272752 (LWP 22982)]
 [New Thread -1238946928 (LWP 22987)]
 [Thread -1238946928 (LWP 22987) exited]
 [New Thread -1247339632 (LWP 22988)]
 [Thread -1247339632 (LWP 22988) exited]

 Program received signal SIGSEGV, Segmentation fault.
 [Switching to Thread -1223272752 (LWP 22982)]
 0xb750c8b0 in purple_account_get_protocol_id (account=0xffffffff)
     at account.c:1726
 1726            if (!strcmp(account->protocol_id, "prpl-oscar")) {
 (gdb) bt full
 #0  0xb750c8b0 in purple_account_get_protocol_id (account=0xffffffff)
     at account.c:1726
         __PRETTY_FUNCTION__ = "purple_account_get_protocol_id"
 #1  0xb6f6f5ea in get_stats_for (buddy=0x82d5c90) at cap.c:37
         buddy_name = <value optimized out>
         stats = (CapStatistics *) 0x8979c00
         __PRETTY_FUNCTION__ = "get_stats_for"
 #2  0xb6f6fa05 in drawing_tooltip (node=0xffffffff, text=0x82d7690,
 full=1)
     at cap.c:458
         stats = <value optimized out>
 #3  0xb7547516 in purple_marshal_VOID__POINTER_POINTER_UINT (
     cb=0xb6f6f9d0 <drawing_tooltip>, args=0xbfda6048
 "\220\\-\b\220v-\b\001",
     data=0x0, return_val=0x0) at signals.c:669
 No locals.
 #4  0xb7547e65 in purple_signal_emit_vargs (instance=0x80ef5b0,
     signal=0x80df3ac "drawing-tooltip",
     args=0xbfda6048 "\220\\-\b\220v-\b\001") at signals.c:481
         handler_data = (PurpleSignalHandlerData *) 0x82d4cf0
         l = <value optimized out>
         l_next = (GList *) 0x0
         tmp = 0xbfda6048 "\220\\-\b\220v-\b\001"
         __PRETTY_FUNCTION__ = "purple_signal_emit_vargs"
 #5  0xb7547f9c in purple_signal_emit (instance=0xb,
     signal=0x82d4cf0 "XC}\bP\201J�") at signals.c:433
         args = 0xbfda6048 "\220\\-\b\220v-\b\001"
         __PRETTY_FUNCTION__ = "purple_signal_emit"
 #6  0x08078ff9 in create_tip_for_node (node=0x82d5c90, full=1)
     at gtkblist.c:3058
         str = (GString *) 0x82d7690
         prpl = <value optimized out>
         tmp = <value optimized out>
         tooltip_text = <value optimized out>
         account = <value optimized out>
         tmp = <value optimized out>
         node_name = <value optimized out>
 #7  0x08079b7a in pidgin_blist_tooltip_timeout (tv=0x84aa018)
     at gtkblist.c:2615
         td = (struct tooltip_data *) 0x0
         child = (PurpleBlistNode *) 0x82d5c90
         b = (PurpleBuddy *) 0x82d5c90
         max_text_width = 0
         max_avatar_width = 0
         path = (GtkTreePath *) 0x82d6980
         iter = {stamp = 699106302, user_data = 0x83cc168, user_data2 =
 0x0,
   user_data3 = 0x0}
         node = <value optimized out>
         val = {g_type = 68, data = {{v_int = 137190432, v_uint =
 137190432,
       v_long = 137190432, v_ulong = 137190432, v_int64 = 137190432,
       v_uint64 = 137190432, v_float = 5.21685862e-34,
       v_double = 6.7781079389319617e-316, v_pointer = 0x82d5c20}, {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}}}
         scr_w = <value optimized out>
         w = <value optimized out>
         h = 0
         x = <value optimized out>
         y = <value optimized out>
         mon_num = <value optimized out>
         screen = (GdkScreen *) 0x0
         mon_size = {x = -1219799387, y = -1209318868, width = 8,
   height = -1076207336}
 #8  0xb75c7116 in ?? () from /usr/lib/libglib-2.0.so.0
 No symbol table info available.
 #9  0x084aa018 in ?? ()
 No symbol table info available.
 #10 0xb7f83484 in ?? () from /usr/lib/libdbus-1.so.3
 No symbol table info available.
 #11 0xbfda6168 in ?? ()
 No symbol table info available.
 ---Type <return> to continue, or q <return> to quit---
 #12 0xb762d1e0 in ?? () from /usr/lib/libglib-2.0.so.0
 No symbol table info available.
 #13 0xb74b40d0 in ?? () from /lib/i686/cmov/libpthread.so.0
 No symbol table info available.
 #14 0x0891fba0 in ?? ()
 No symbol table info available.
 #15 0xbfda6168 in ?? ()
 No symbol table info available.
 #16 0xb75dede2 in g_slist_prepend () from /usr/lib/libglib-2.0.so.0
 No symbol table info available.
 #17 0xb75c6b51 in g_main_context_dispatch () from
 /usr/lib/libglib-2.0.so.0
 No symbol table info available.
 #18 0xb75c9bc6 in ?? () from /usr/lib/libglib-2.0.so.0
 No symbol table info available.
 #19 0x08111e10 in ?? ()
 No symbol table info available.
 #20 0x00000000 in ?? ()
 No symbol table info available.
 }}}

-- 
Ticket URL: <http://developer.pidgin.im/ticket/509#comment:2>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list