# HG changeset patch # User Elliott Sales de Andrade # Date 1300062515 0 # Node ID 7b021b6a09aff35755bb0af5004108657e7cfec6 # Parent c78c13eee4e6d4cf3ecb29a4f4b03d586c2e8032 Make sure we don't crash if we can't find the transaction for the mobile error. This is highly unlikely though, since errors occur almost immediately after sending. diff -r c78c13eee4e6 -r 7b021b6a09af libpurple/protocols/msn/notification.c --- a/libpurple/protocols/msn/notification.c Sun Mar 13 23:40:42 2011 +0000 +++ b/libpurple/protocols/msn/notification.c Mon Mar 14 00:28:35 2011 +0000 @@ -1203,22 +1203,23 @@ if ((id = xmlnode_get_attrib(payloadNode, "id")) != NULL) { unsigned int trId = atol(id); MsnTransaction *trans; - MsnMessage *msg; trans = msn_history_find(cmdproc->history, trId); - msg = (MsnMessage *)trans->data; - - if (msg) { - char *body_str = msn_message_to_string(msg); - char *body_enc = g_markup_escape_text(body_str, -1); - - purple_conversation_write(conv, NULL, body_enc, - PURPLE_MESSAGE_RAW, time(NULL)); - - g_free(body_str); - g_free(body_enc); - msn_message_unref(msg); - trans->data = NULL; + if (trans) { + MsnMessage *msg = (MsnMessage *)trans->data; + + if (msg) { + char *body_str = msn_message_to_string(msg); + char *body_enc = g_markup_escape_text(body_str, -1); + + purple_conversation_write(conv, NULL, body_enc, + PURPLE_MESSAGE_RAW, time(NULL)); + + g_free(body_str); + g_free(body_enc); + msn_message_unref(msg); + trans->data = NULL; + } } } }