Mercurial > pidgin
diff libpurple/protocols/bonjour/buddy.c @ 19573:affacee881e8
Fix a couple potential leaks and prevent the avahi record resolver from being freed multiple times.
Thanks to Lennart from the Avahi team for suggestions on how to improve the avahi implementation.
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Sun, 02 Sep 2007 17:54:44 +0000 |
parents | 2d6d936867bc |
children | 44b4e8bd759b |
line wrap: on
line diff
--- a/libpurple/protocols/bonjour/buddy.c Sun Sep 02 14:40:04 2007 +0000 +++ b/libpurple/protocols/bonjour/buddy.c Sun Sep 02 17:54:44 2007 +0000 @@ -121,9 +121,8 @@ * the buddy. */ void -bonjour_buddy_add_to_purple(BonjourBuddy *bonjour_buddy) +bonjour_buddy_add_to_purple(BonjourBuddy *bonjour_buddy, PurpleBuddy *buddy) { - PurpleBuddy *buddy; PurpleGroup *group; PurpleAccount *account = bonjour_buddy->account; const char *status_id, *old_hash, *new_hash; @@ -147,7 +146,8 @@ } /* Make sure the buddy exists in our buddy list */ - buddy = purple_find_buddy(account, bonjour_buddy->name); + if (buddy == NULL) + buddy = purple_find_buddy(account, bonjour_buddy->name); if (buddy == NULL) { buddy = purple_buddy_new(account, bonjour_buddy->name, NULL);