libpurple/protocols/msn/contact.c

branch
cpw.khc.msnp14
changeset 20578
82571739414b
parent 20577
f24d1c68f2a4
child 20585
a82494142fe3
--- a/libpurple/protocols/msn/contact.c	Sat Sep 08 03:34:49 2007 +0000
+++ b/libpurple/protocols/msn/contact.c	Sun Sep 09 00:43:22 2007 +0000
@@ -415,6 +415,7 @@
 
 		if ( (typedata = xmlnode_get_data(handletype)) == NULL) {
 			purple_debug_error("MSNCL","Error retrieving data from 'Type' child node\n");
+			g_free(typedata);
 			continue;
 		}
 
@@ -655,9 +656,7 @@
 		xmlnode *groupIds;
 		MsnUser *user;
 		MsnUserType usertype;
-		char *passport,*Name,*uid,*type;
-
-		passport = NULL;
+		char *passport = NULL, *Name = NULL, *uid = NULL, *type = NULL;
 
 		contactId= xmlnode_get_child(contactNode,"contactId");
 		uid = xmlnode_get_data(contactId);
@@ -696,6 +695,8 @@
 					contactEmailNode = xmlnode_get_next_twin(contactEmailNode) ){
 				messengerEnabledNode = xmlnode_get_child(contactEmailNode,"isMessengerEnabled");
 				if(messengerEnabledNode == NULL){
+					g_free(uid);
+					g_free(type);
 					break;
 				}
 				msnEnabled = xmlnode_get_data(messengerEnabledNode);
@@ -705,6 +706,10 @@
 					passport = xmlnode_get_data(emailNode);
 					purple_debug_info("MsnAB","Yahoo User %s\n",passport);
 					usertype = MSN_USER_TYPE_YAHOO;
+					g_free(uid);
+					g_free(type);
+					g_free(passport);
+					g_free(msnEnabled);
 					break;
 				}else{
 					/*TODO maybe we can just ignore it in Purple?*/
@@ -728,7 +733,7 @@
 		if (displayName == NULL) {
 			Name = g_strdup(passport);
 		} else {
-			Name =xmlnode_get_data(displayName);
+			Name = xmlnode_get_data(displayName);
 		}
 
 		purple_debug_misc("MsnAB","passport:{%s} uid:{%s} display:{%s}\n",

mercurial