# HG changeset patch # User Daniel Atallah # Date 1209765661 0 # Node ID 0d7ceae153bdc10460befbff6f5398900370c265 # Parent 6b182ab4bc058a3290fa6f84f97cc15e8ad90ad8 Leak fixes. diff -r 6b182ab4bc05 -r 0d7ceae153bd libpurple/protocols/yahoo/yahoo_aliases.c --- a/libpurple/protocols/yahoo/yahoo_aliases.c Fri May 02 21:09:59 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo_aliases.c Fri May 02 22:01:01 2008 +0000 @@ -68,7 +68,8 @@ purple_debug_info("yahoo", "No Aliases to process.%s%s\n", error_message ? " Error:" : "", error_message ? error_message : ""); } else { - const char *yid, *full_name, *nick_name, *alias, *id, *fn, *ln, *nn; + gchar *full_name, *nick_name, *alias; + const char *yid, *id, *fn, *ln, *nn; PurpleBuddy *b = NULL; xmlnode *item, *contacts; @@ -92,7 +93,9 @@ nn = xmlnode_get_attrib(item,"nn"); id = xmlnode_get_attrib(item,"id"); - /* Yahoo stores first and last names separately, lets put them together into a full name */ + full_name = nick_name = alias = NULL; + + /* Yahoo stores first and last names separately, lets put them together into a full name */ if (yd->jp) full_name = g_strstrip(g_strdup_printf("%s %s", (ln != NULL ? ln : "") , (fn != NULL ? fn : ""))); else @@ -103,8 +106,6 @@ alias = nick_name; /* If we have a nickname from Yahoo, let's use it */ else if (strlen(full_name) != 0) alias = full_name; /* If no Yahoo nickname, we can use the full_name created above */ - else - alias = NULL; /* No nickname, first name or last name, then you get no alias !! */ /* Find the local buddy that matches */ b = purple_find_buddy(cb->gc->account, yid); @@ -118,6 +119,7 @@ yu->firstname = g_strdup(fn); yu->lastname = g_strdup(ln); yu->nickname = g_strdup(nn); + /* TODO: Isn't there a possiblity that b->proto_data is already set? */ b->proto_data=yu; /* Finally, if we received an alias, we better update the buddy list */ @@ -132,6 +134,9 @@ } else { purple_debug_info("yahoo", "Bizarre, received alias for %s, but they are not on your list...\n", yid); } + + g_free(full_name); + g_free(nick_name); } } xmlnode_free(contacts); diff -r 6b182ab4bc05 -r 0d7ceae153bd libpurple/protocols/yahoo/yahoo_filexfer.c --- a/libpurple/protocols/yahoo/yahoo_filexfer.c Fri May 02 21:09:59 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo_filexfer.c Fri May 02 22:01:01 2008 +0000 @@ -998,6 +998,7 @@ url = g_strdup_printf("%ld.%ld.%ld.%ld", d, c, b, a); if (!purple_url_parse(url, &(xd->host), &(xd->port), &(xd->path), NULL, NULL)) { purple_xfer_cancel_remote(xfer); + g_free(url); return; } g_free(url);