--- a/libpurple/protocols/jabber/jabber.c Mon Aug 21 23:48:33 2023 -0500 +++ b/libpurple/protocols/jabber/jabber.c Tue Aug 22 00:24:14 2023 -0500 @@ -1669,6 +1669,7 @@ manager = purple_account_manager_get_default(); account = purple_account_manager_find_by_id(manager, account_id); connection = purple_account_get_connection(account); + g_clear_object(&account); js = purple_connection_get_protocol_data(connection); page = purple_request_page_new(); @@ -2797,7 +2798,7 @@ if (acct_id) { acct = purple_account_manager_find(manager, acct_id, protocol); if (acct && !purple_account_is_connected(acct)) { - acct = NULL; + g_clear_object(&acct); } } else { /* Otherwise find an active account for the protocol */ acct = purple_account_manager_find_custom(manager, @@ -2839,18 +2840,23 @@ purple_conversation_present(im); - if (params != NULL) { + if(params != NULL) { body = g_hash_table_lookup(params, "body"); } - if (body && *body) + if(body && *body) { purple_conversation_send_confirm(im, body); + } + + g_clear_object(&acct); + return TRUE; } } else if (g_hash_table_lookup_extended(params, "roster", NULL, NULL)) { char *name = g_hash_table_lookup(params, "name"); if (user && *user) { purple_blist_request_add_buddy(acct, user, NULL, name); + g_clear_object(&acct); return TRUE; } } else if (g_hash_table_lookup_extended(params, "join", NULL, NULL)) { @@ -2859,9 +2865,12 @@ GHashTable *params = jabber_chat_info_defaults(gc, user); jabber_chat_join(gc, params); } + g_clear_object(&acct); return TRUE; } + g_clear_object(&acct); + return FALSE; }