Ignore:
Timestamp:
2015-03-22T13:35:08Z (5 years ago)
Author:
dequis <dx@…>
Branches:
master
Children:
b95d03b
Parents:
2dd23da
git-author:
dequis <dx@…> (21-03-15 08:26:20)
git-committer:
dequis <dx@…> (22-03-15 13:35:08)
Message:

Fix a bunch of memory leaks

  • irc_im.c:
    • bee_irc_user_msg: strdup leaks when otr swallows messages
    • bee_irc_user_action_response: GString leak in all ctcp replies
  • otr.c:
    • call g_slist_free() on the list of the otr_policy setting
    • otr_filter_msg_in: call otrl_tlv_free() if "tlvs" are returned
    • otr_filter_msg_out: don't g_strdup() if the message should be ignored
    • log_otr_message: g_strdup_vprintf() leaks always
  • nogaim.c:
    • imcb_ask_auth/imcb_ask_add: leaks in g_strdup_printf()
    • imcb_ask_add leaks imcb_ask_cb_data if the user already exists
    • add imcb_ask_cb_free() to correctly free its data
  • msn_util.c: add msn_buddy_ask_free(), ditto
  • storage_xml.c: pass_cr/password if base64_decode or arc_decode fail
  • ssl_gnutls.c: conn->hostname leak in error conditions, like invalid certs
  • jabber_util.c: jabber_buddy_by_ext_jid() leaks jid if it's not an ext jid
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/msn/msn_util.c

    r2dd23da r098a75b  
    174174};
    175175
    176 static void msn_buddy_ask_yes(void *data)
     176static void msn_buddy_ask_free(void *data)
    177177{
    178178        struct msn_buddy_ask_data *bla = data;
    179 
    180         msn_buddy_list_add(bla->ic, MSN_BUDDY_AL, bla->handle, bla->realname, NULL);
    181 
    182         imcb_ask_add(bla->ic, bla->handle, NULL);
    183179
    184180        g_free(bla->handle);
     
    187183}
    188184
     185static void msn_buddy_ask_yes(void *data)
     186{
     187        struct msn_buddy_ask_data *bla = data;
     188
     189        msn_buddy_list_add(bla->ic, MSN_BUDDY_AL, bla->handle, bla->realname, NULL);
     190
     191        imcb_ask_add(bla->ic, bla->handle, NULL);
     192
     193        msn_buddy_ask_free(bla);
     194}
     195
    189196static void msn_buddy_ask_no(void *data)
    190197{
     
    193200        msn_buddy_list_add(bla->ic, MSN_BUDDY_BL, bla->handle, bla->realname, NULL);
    194201
    195         g_free(bla->handle);
    196         g_free(bla->realname);
    197         g_free(bla);
     202        msn_buddy_ask_free(bla);
    198203}
    199204
     
    216221                   "The user %s (%s) wants to add you to his/her buddy list.",
    217222                   bu->handle, bu->fullname);
    218         imcb_ask(bu->ic, buf, bla, msn_buddy_ask_yes, msn_buddy_ask_no);
     223
     224        imcb_ask_with_free(bu->ic, buf, bla, msn_buddy_ask_yes, msn_buddy_ask_no, msn_buddy_ask_free);
    219225}
    220226
Note: See TracChangeset for help on using the changeset viewer.