# HG changeset patch # User Elliott Sales de Andrade # Date 1238045655 0 # Node ID 9aa672807759ee29812837f26feed0fd62af7214 # Parent de48f984f6e7b63bd91fe53a14330119e7e43ad4# Parent 9f84925079d564fecb3bb4202cc48193bd3c181e merge of '99d00e3331645ef61bc0f08255d51234daaf67f5' and 'c7434c065403708c78a862aacde8febcaff8077a' diff -r de48f984f6e7 -r 9aa672807759 libpurple/protocols/bonjour/mdns_win32.c --- a/libpurple/protocols/bonjour/mdns_win32.c Thu Mar 26 05:29:18 2009 +0000 +++ b/libpurple/protocols/bonjour/mdns_win32.c Thu Mar 26 05:34:15 2009 +0000 @@ -169,14 +169,17 @@ gboolean delete_buddy = FALSE; PurpleBuddy *pb = NULL; + if ((pb = purple_find_buddy(args->account, args->res_data->name))) { + if (pb->proto_data != args->bb) { + purple_debug_error("bonjour", "Found purple buddy for %s not matching bonjour buddy record.", + args->res_data->name); + goto cleanup; + } /* Make sure that the BonjourBuddy associated with this request is still around */ - if (g_slist_find(pending_buddies, args->bb) == NULL) + } else if (g_slist_find(pending_buddies, args->bb) == NULL) { + purple_debug_error("bonjour", "host resolution - complete, but buddy no longer pending.\n"); goto cleanup; - - if ((pb = purple_find_buddy(args->account, args->bb->name))) - if (pb->proto_data != args->bb) - purple_debug_error("bonjour", "Found purple buddy for %s not matching bonjour buddy record. " - "This is going to be ugly!.\n", args->bb->name); + } if (!hosts || !hosts->data) { purple_debug_error("bonjour", "host resolution - callback error.\n"); diff -r de48f984f6e7 -r 9aa672807759 libpurple/protocols/yahoo/yahoo_packet.c --- a/libpurple/protocols/yahoo/yahoo_packet.c Thu Mar 26 05:29:18 2009 +0000 +++ b/libpurple/protocols/yahoo/yahoo_packet.c Thu Mar 26 05:34:15 2009 +0000 @@ -201,6 +201,8 @@ } pos += 2; + if (pos + 1 > len) break; + /* Skip over garbage we've noticed in the mail notifications */ if (data[0] == '9' && data[pos] == 0x01) pos++;