# HG changeset patch # User Paul Aurich # Date 1280694080 0 # Node ID 06d8de5dd53cc17f1ddb9569d7d7cac77e04ba92 # Parent 2244a84407a499ee54af23aa8b66348aba6b84bc yahoo: Avoid misuse of purple_normalize purple_normalize returns a pointer into a static buffer, so calling it twice in the arguments to another function is bad. (It was OK in this case, since the two calls were identical, but let's avoid bad idioms) diff -r 2244a84407a4 -r 06d8de5dd53c libpurple/protocols/yahoo/libymsg.c --- a/libpurple/protocols/yahoo/libymsg.c Sun Aug 01 03:23:24 2010 +0000 +++ b/libpurple/protocols/yahoo/libymsg.c Sun Aug 01 20:21:20 2010 +0000 @@ -2702,6 +2702,7 @@ PurpleAccount *account; YahooData *yd = gc->proto_data; struct yahoo_p2p_data *p2p_data; + const char *norm_username; f = yahoo_friend_find(gc, who); account = purple_connection_get_account(gc); @@ -2734,10 +2735,11 @@ sprintf(temp_str, "%d", ip); base64_ip = purple_base64_encode( (guchar *)temp_str, strlen(temp_str) ); + norm_username = purple_normalize(account, purple_account_get_username(account)); pkt = yahoo_packet_new(YAHOO_SERVICE_PEERTOPEER, YAHOO_STATUS_AVAILABLE, 0); yahoo_packet_hash(pkt, "sssissis", - 1, purple_normalize(account, purple_account_get_username(account)), - 4, purple_normalize(account, purple_account_get_username(account)), + 1, norm_username, + 4, norm_username, 12, base64_ip, /* base64 encode ip */ 61, 0, /* To-do : figure out what is 61 for?? */ 2, "",