#136 pidgin crashes

closed-fixed
Bill Tompkins
None
8
2010-05-11
2008-04-05
johfel
No

If I enable pidgin-encryption and open a new conversation, pidgin crashes.

I'm using pidgin 2.4.1 and pidgin-encryption 3.0-3 in debian sid.

The crash occurs because g_str_hash is called via g_hash_table_lookup with a NULL-Pointer as key.

Here is the stack backtrace:

#0 0xb8075424 in __kernel_vsyscall ()
No symbol table info available.
#1 0xb76e6ef5 in raise () from /lib/i686/cmov/libc.so.6
No symbol table info available.
#2 0xb76e8871 in abort () from /lib/i686/cmov/libc.so.6
No symbol table info available.
#3 0x080c5f83 in sighandler (sig=11) at ../../pidgin/gtkmain.c:192
No locals.
#4 <signal handler called>
No symbol table info available.
#5 0xb789fdf7 in g_str_hash () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#6 0xb78714db in g_hash_table_lookup () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#7 0xb6eedfdc in create_smiley_if_absent (imhtml=0x91681d0) at state_ui.c:274
smiley = <value optimized out>
category = 0x0
#8 0xb6eee0fd in PE_add_smiley (conv=0x9376278) at state_ui.c:342
smiley = <value optimized out>
imhtml = (GtkIMHtml *) 0x91681d0
#9 0xb6ee4092 in PE_updated_conv_cb (conv=0x9376278, data=0x5) at encrypt.c:1076
No locals.
#10 0xb79ac9ec in purple_marshal_VOID__POINTER_UINT (cb=0xb6ee4070 <PE_updated_conv_cb>,
args=0xbfe8c670 "H\036\224��C��\230�迨�\227�xb7\t\005", data=0x0, return_val=0x0) at ../../libpurple/signals.c:639
arg1 = (void *) 0x9376278
arg2 = 5
#11 0xb79ac56d in purple_signal_emit_vargs (instance=0xb7a18028, signal=0xb79fdd45 "conversation-updated",
args=0xbfe8c668 "xb7\t\005") at ../../libpurple/signals.c:482
instance_data = (PurpleInstanceData *) 0x8e45e50
signal_data = (PurpleSignalData *) 0x8ecf3f0
handler_data = (PurpleSignalHandlerData *) 0x9050320
l = (GList *) 0x904fd00
l_next = (GList *) 0x90507b0
tmp = 0xbfe8c668 "xb7\t\005"
__PRETTY_FUNCTION__ = "purple_signal_emit_vargs"
#12 0xb79ac3ff in purple_signal_emit (instance=0xb7a18028, signal=0xb79fdd45 "conversation-updated")
---Type <return> to continue, or q <return> to quit---
at ../../libpurple/signals.c:434
args = 0xbfe8c668 "xb7\t\005"
__PRETTY_FUNCTION__ = "purple_signal_emit"
#13 0xb797ce06 in purple_conversation_update (conv=0x9376278, type=PURPLE_CONV_UPDATE_LOGGING)
at ../../libpurple/conversation.c:979
__PRETTY_FUNCTION__ = "purple_conversation_update"
#14 0xb797c4a8 in purple_conversation_set_logging (conv=0x9376278, log=1) at ../../libpurple/conversation.c:722
__PRETTY_FUNCTION__ = "purple_conversation_set_logging"
#15 0x08097d0c in private_gtkconv_new (conv=0x9376278, hidden=0) at ../../pidgin/gtkconv.c:5004
gtkconv = (PidginConversation *) 0x93a2d20
conv_type = PURPLE_CONV_TYPE_IM
pane = (GtkWidget *) 0x9327288
tab_cont = (GtkWidget *) 0x93b9420
convnode = (PurpleBlistNode *) 0x905aea8
value = (PurpleValue *) 0x905c6e8
#16 0x08097ecc in pidgin_conv_new (conv=0x9376278) at ../../pidgin/gtkconv.c:5046
No locals.
#17 0xb797b970 in purple_conversation_new (type=PURPLE_CONV_TYPE_IM, account=0x8ec1d88,
name=0x905af38 "somebody@jabber.ccc.de") at ../../libpurple/conversation.c:381
conv = (PurpleConversation *) 0x9376278
gc = (PurpleConnection *) 0x930b420
ops = (PurpleConversationUiOps *) 0x8116300
__PRETTY_FUNCTION__ = "purple_conversation_new"
#18 0x080a77a3 in pidgin_dialogs_im_with_user (account=0x8ec1d88, username=0x905af38 "somebody@jabber.ccc.de")
at ../../pidgin/gtkdialogs.c:783
conv = (PurpleConversation *) 0x0
__PRETTY_FUNCTION__ = "pidgin_dialogs_im_with_user"
#19 0x08077230 in gtk_blist_row_activated_cb (tv=0x914e088, path=0x938fd90, col=0x901ab80, data=0x0)
at ../../pidgin/gtkblist.c:1098
buddy = (PurpleBuddy *) 0x905af68
node = (PurpleBlistNode *) 0x905aea8
iter = {stamp = -1359076930, user_data = 0x90932c8, user_data2 = 0x0, user_data3 = 0x0}
val = {g_type = 68, data = {{v_int = 151367336, v_uint = 151367336, v_long = 151367336, v_ulong = 151367336,
v_int64 = 151367336, v_uint64 = 151367336, v_float = 1.60914156e-33, v_double = 7.4785400620108968e-316,
v_pointer = 0x905aea8}, {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}}}

Discussion

  • johfel
    johfel
    2008-04-05

    • priority: 5 --> 8
    • summary: pidgin sometimes crashing --> pidgin crashes
     
  • Bill Tompkins
    Bill Tompkins
    2008-04-11

    • assigned_to: nobody --> obobo
     
  • Bill Tompkins
    Bill Tompkins
    2008-04-11

    Logged In: YES
    user_id=21203
    Originator: NO

    I can't reproduce the crash myself. Could you try changing the line
    if (g_hash_table_lookup(imhtml->smiley_data, category) == NULL) {
    to
    if (category && g_hash_table_lookup(imhtml->smiley_data, category) == NULL) {

    in create_smiley_if_absent(), state_ui.c (around line 286)

    I'm not sure why the Jabber protocol name is coming back as blank... and with that being the case, it's possible that the inline lock icons won't behave properly if you have that enabled in your preferences.

    If that patch doesn't cause other problems, I'll go ahead and check it in for the next release.

    -Bill

     
  • johfel
    johfel
    2008-04-12

    Logged In: YES
    user_id=1253247
    Originator: YES

    If I change the line how you suggested, everything works. Thanks!

    The crash strangely occurs only with one of my buddies. It is independent of the option "inline lock icons".

     
  • Brian Morrison
    Brian Morrison
    2008-06-20

    Logged In: YES
    user_id=1244611
    Originator: NO

    Just ran into this bug today, any chance of a new release on Windows to fix it please?

     
  • Logged In: YES
    user_id=2140729
    Originator: NO

    I am running Pidgin 2.4.3 with Encrytion 3.0 and on some buddys it crashes (pidgin closes) when I click on them. Most buddys work fine with encryption on. If I turn off the encryption plugin then this goes away and all buddys work fine. I have deleted the buddys that crash Pidgin and added them back in and now they work. But for how long I do not know. I did have them in twice under two different groups and deleted both entries. I will continue to test as I have several coworkers with the same problem. All my buddys are AIM screen names.
    I have had to stop deploying this to my coworkers until issue is resolved. I will continue to monitor and give my updates. Thanks.

     
  • Logged In: YES
    user_id=2140729
    Originator: NO

    I am running Pidgin 2.4.3 with Encrytion 3.0 and on some buddys it crashes (pidgin closes) when I click on them. Most buddys work fine with encryption on. If I turn off the encryption plugin then this goes away and all buddys work fine. I have deleted the buddys that crash Pidgin and added them back in and now they work. But for how long I do not know. I did have them in twice under two different groups and deleted both entries. I will continue to test as I have several coworkers with the same problem. All my buddys are AIM screen names.
    I have had to stop deploying this to my coworkers until issue is resolved. I will continue to monitor and give my updates. Thanks.

     
  • I have this problem with encryption plugin. I switch off all other plugins. Problem occours when I switch off logging record for the contact. To reproduce problem: I switch off logging record for contact. Close conversation window and when I want to open conversation window again pidgin crash with segmentation fault.

     
  • I am using pidgin 2.4.1. pidgin-encryption 3.0-2. /etc/debian_version is lenny/sid. It is ubuntu hardy 8.04.1.

     
  • Bill Tompkins
    Bill Tompkins
    2010-04-26

    Fixed in 3.1

     
  • Bill Tompkins
    Bill Tompkins
    2010-04-26

    • status: open --> pending-fixed
     
  • This Tracker item was closed automatically by the system. It was
    previously set to a Pending status, and the original submitter
    did not respond within 14 days (the time period specified by
    the administrator of this Tracker).

     
    • status: pending-fixed --> closed-fixed