comparison libpurple/protocols/jabber/roster.c @ 20835:3de6fbc79134

Another couple leak fixes in the xmpp roster parsing.
author Daniel Atallah <daniel.atallah@gmail.com>
date Tue, 09 Oct 2007 00:25:56 +0000
parents 062ed5f59ada
children 05f525c8f192
comparison
equal deleted inserted replaced
20834:6b9e5bbab0fe 20835:3de6fbc79134
65 g2 = groups; 65 g2 = groups;
66 66
67 if(!groups) { 67 if(!groups) {
68 if(!buddies) 68 if(!buddies)
69 g2 = g_slist_append(g2, g_strdup(_("Buddies"))); 69 g2 = g_slist_append(g2, g_strdup(_("Buddies")));
70 else 70 else {
71 g_slist_free(buddies);
71 return; 72 return;
73 }
72 } 74 }
73 75
74 my_bare_jid = g_strdup_printf("%s@%s", js->user->node, js->user->domain); 76 my_bare_jid = g_strdup_printf("%s@%s", js->user->node, js->user->domain);
75 77
76 while(buddies) { 78 while(buddies) {
265 PurpleGroup *g; 267 PurpleGroup *g;
266 GSList *groups = NULL, *l; 268 GSList *groups = NULL, *l;
267 JabberIq *iq; 269 JabberIq *iq;
268 xmlnode *query, *item, *group; 270 xmlnode *query, *item, *group;
269 271
272 if(!(b = purple_find_buddy(js->gc->account, name)))
273 return;
274
270 if(grps) { 275 if(grps) {
271 groups = grps; 276 groups = grps;
272 } else { 277 } else {
273 GSList *buddies = purple_find_buddies(js->gc->account, name); 278 GSList *buddies = purple_find_buddies(js->gc->account, name);
274 if(!buddies) 279 if(!buddies)
279 groups = g_slist_append(groups, g->name); 284 groups = g_slist_append(groups, g->name);
280 buddies = g_slist_remove(buddies, b); 285 buddies = g_slist_remove(buddies, b);
281 } 286 }
282 } 287 }
283 288
284 if(!(b = purple_find_buddy(js->gc->account, name)))
285 return;
286
287 iq = jabber_iq_new_query(js, JABBER_IQ_SET, "jabber:iq:roster"); 289 iq = jabber_iq_new_query(js, JABBER_IQ_SET, "jabber:iq:roster");
288 290
289 query = xmlnode_get_child(iq->node, "query"); 291 query = xmlnode_get_child(iq->node, "query");
290 item = xmlnode_new_child(query, "item"); 292 item = xmlnode_new_child(query, "item");
291 293