diff src/protocols/msn/notification.c @ 10284:f776e117c17b

[gaim-migrate @ 11454] Several MSN memory leaks identified and fixed by Miah Gregory and Felipe Contreras, plus my own fix for bug 1075347. As normal, thank them for fixes, blame me for breakages. Did I mention the new MSN icon? It rocks! committer: Tailor Script <tailor@pidgin.im>
author Stu Tomlinson <stu@nosnilmot.com>
date Wed, 01 Dec 2004 02:30:47 +0000
parents d9468bd22b7c
children a7b2fd5efcf2
line wrap: on
line diff
--- a/src/protocols/msn/notification.c	Wed Dec 01 01:17:46 2004 +0000
+++ b/src/protocols/msn/notification.c	Wed Dec 01 02:30:47 2004 +0000
@@ -235,7 +235,6 @@
 	msn_message_parse_payload(msg, payload, len);
 	/* msn_message_show_readable(msg, "Notification", TRUE); */
 
-	msg->remote_user = g_strdup(cmd->params[0]);
 	msn_cmdproc_process_msg(cmdproc, msg);
 
 	msn_message_destroy(msg);
@@ -947,16 +946,36 @@
 		return;
 
 	if ((value = msn_message_get_attr(msg, "kv")) != NULL)
+	{
+		if (session->passport_info.kv != NULL)
+			g_free(session->passport_info.kv);
+
 		session->passport_info.kv = g_strdup(value);
+	}
 
 	if ((value = msn_message_get_attr(msg, "sid")) != NULL)
+	{
+		if (session->passport_info.sid != NULL)
+			g_free(session->passport_info.sid);
+
 		session->passport_info.sid = g_strdup(value);
+	}
 
 	if ((value = msn_message_get_attr(msg, "MSPAuth")) != NULL)
+	{
+		if (session->passport_info.mspauth != NULL)
+			g_free(session->passport_info.mspauth);
+
 		session->passport_info.mspauth = g_strdup(value);
+	}
 
 	if ((value = msn_message_get_attr(msg, "ClientIP")) != NULL)
+	{
+		if (session->passport_info.client_ip != NULL)
+			g_free(session->passport_info.client_ip);
+
 		session->passport_info.client_ip = g_strdup(value);
+	}
 
 	if ((value = msn_message_get_attr(msg, "ClientPort")) != NULL)
 		session->passport_info.client_port = ntohs(atoi(value));
@@ -1158,8 +1177,9 @@
 	if (cmdproc->error)
 		return;
 
-	session->user = msn_user_new(session->userlist,
-								 gaim_account_get_username(account), NULL);
+	if (session->user == NULL)
+		session->user = msn_user_new(session->userlist,
+									 gaim_account_get_username(account), NULL);
 
 #if 0
 	gaim_connection_update_progress(gc, _("Syncing with server"),