Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#150 crash when exit pidgin

closed
Bill Tompkins
None
5
2010-05-11
2010-01-19
Black_Ps`
No

Please check this bug problem at http://developer.pidgin.im/ticket/11202#comment:2

Discussion

  • Hans Bausewein
    Hans Bausewein
    2010-01-22

    I had this too. It seems that the plugin does not clean up properly.
    If I close the chat window or disable encryption, it shuts down normally.

    The stack trace in Linux showed, that it crashes in the "pidgin_conv_window_destroy" function in a call to
    gtk_widget_destroy(win->window);

    I'll add some debug/dev libraries and see whether I can get more information.

    As a work-around try to close all encrypted sessions.

     
  • Paul Aurich
    Paul Aurich
    2010-02-10

    Hmm, SF won't let me attach a patch. Anyway, I believe this (completely untested) patch should fix the issue, which is a use-after-free of the two hash tables.

    diff -ur pidgin-encryption-3.0/state_ui.c pidgin-encryption-3.0-mod/state_ui.c
    --- pidgin-encryption-3.0/state_ui.c 2007-05-06 17:15:27.000000000 -0700
    +++ pidgin-encryption-3.0-mod/state_ui.c 2010-02-09 15:57:15.000000000 -0800
    @@ -176,7 +176,11 @@
    g_hash_table_destroy(tx_encrypt_menus);
    g_hash_table_destroy(rx_encrypt_iconlist);

    + tx_encrypt_menus = NULL;
    + rx_encrypt_iconlist = NULL;
    +
    g_free(smiley_filepath);
    + smiley_filepath = NULL;
    }

    void PE_set_tx_encryption_icon(PurpleConversation* conv,
    @@ -386,6 +390,10 @@
    win = pidgin_conv_get_window(gtkconv);
    g_return_if_fail(win != NULL);

    + /* Remove the destroy callbacks */
    + g_signal_handlers_disconnect_by_func(G_OBJECT(win->window), G_CALLBACK(remove_txbuttons_cb), win);
    + g_signal_handlers_disconnect_by_func(G_OBJECT(win->window), G_CALLBACK(remove_rx_icon_cb), win);
    +
    tx_menubuttons = g_hash_table_lookup(tx_encrypt_menus, win);
    if (tx_menubuttons) {
    gtk_widget_destroy(tx_menubuttons->unencrypted);

     

  • Anonymous
    2010-04-07

    i contacted the developer, Bill Tompkins, he said he might be able to release a new build at some point in the near future (some weeks)

     
  • Bill Tompkins
    Bill Tompkins
    2010-04-26

    Fixed in 3.1. Thanks for the patch!

     
  • Bill Tompkins
    Bill Tompkins
    2010-04-26

    • assigned_to: nobody --> obobo
    • status: open --> pending
     
    • status: pending --> closed
     
  • 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).