im.pidgin.pidgin: b7a2c4d81867c3bbd262c2a4b1d924ea7fd3afb6

datallah at pidgin.im datallah at pidgin.im
Mon Oct 8 16:50:37 EDT 2007


revision:            b7a2c4d81867c3bbd262c2a4b1d924ea7fd3afb6
date:                2007-10-08T20:46:00
author:              datallah at pidgin.im
branch:              im.pidgin.pidgin
changelog:
Fix a couple leaks in parsing the xmpp roster.

manifest:
format_version "1"

new_manifest [dd73c9028d0d6635cc3d655a07cfdb43e1e5f1fe]

old_revision [703c3f9437d5e71255819c747f9690d19c6ba6e3]

patch "libpurple/protocols/jabber/roster.c"
 from [04ce5d39a1366a2d6ce250ea42e9b74647324748]
   to [1336b167453dd68892ff6a002d454e75ff6f166e]
-------------- next part --------------
============================================================
--- libpurple/protocols/jabber/roster.c	04ce5d39a1366a2d6ce250ea42e9b74647324748
+++ libpurple/protocols/jabber/roster.c	1336b167453dd68892ff6a002d454e75ff6f166e
@@ -229,6 +229,11 @@ void jabber_roster_parse(JabberStream *j
 			remove_purple_buddies(js, jid);
 		} else {
 			GSList *groups = NULL;
+
+			if (js->server_caps & JABBER_CAP_GOOGLE_ROSTER)
+				if (!jabber_google_roster_incoming(js, item))
+					continue;
+
 			for(group = xmlnode_get_child(item, "group"); group; group = xmlnode_get_next_twin(group)) {
 				char *group_name;
 
@@ -237,10 +242,9 @@ void jabber_roster_parse(JabberStream *j
 
 				if (g_slist_find_custom(groups, group_name, (GCompareFunc)purple_utf8_strcasecmp) == NULL)
 					groups = g_slist_append(groups, group_name);
+				else
+					g_free(group_name);
 			}
-			if (js->server_caps & JABBER_CAP_GOOGLE_ROSTER)
-				if (!jabber_google_roster_incoming(js, item))
-					continue;
 			add_purple_buddies_to_groups(js, jid, name, groups);
 		}
 	}


More information about the Commits mailing list