Mercurial > pidgin.yaz
diff libpurple/protocols/yahoo/yahoo.c @ 22807:0b11895cc564
Leak fixes. Avoid creating an unnecessary parallel data structure to YahooFriend.
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Sat, 03 May 2008 21:03:13 +0000 |
parents | cc8903c59d6b |
children | 0f94ed7e362b 8c3444f04709 1dd0e007514d |
line wrap: on
line diff
--- a/libpurple/protocols/yahoo/yahoo.c Sat May 03 19:45:15 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Sat May 03 21:03:13 2008 +0000 @@ -3483,9 +3483,12 @@ { PurpleConnection *gc = user_data; gboolean set_cookie = FALSE; - char *url; + gchar *url; + struct yahoo_data *yd = gc->proto_data; g_return_if_fail(PURPLE_CONNECTION_IS_VALID(gc)); + + yd->url_datas = g_slist_remove(yd->url_datas, url_data); if (error_message != NULL) purple_debug_error("yahoo", "Requesting mail login token failed: %s\n", error_message); @@ -3500,7 +3503,6 @@ } if (!set_cookie) { - struct yahoo_data *yd = gc->proto_data; purple_debug_error("yahoo", "No mail login token; forwarding to login screen.\n"); url = g_strdup(yd->jp ? YAHOOJP_MAIL_URL : YAHOO_MAIL_URL); } @@ -3541,7 +3543,9 @@ g_free(request); - if (url_data == NULL) { + if (url_data != NULL) + yd->url_datas = g_slist_prepend(yd->url_datas, url_data); + else { const char *yahoo_mail_url = (yd->jp ? YAHOOJP_MAIL_URL : YAHOO_MAIL_URL); purple_debug_error("yahoo", "Unable to request mail login token; forwarding to login screen.");