Sigh, so apparently, I broke receiving smileys with some over-zealous

Mon, 22 Nov 2010 03:01:14 +0000

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Mon, 22 Nov 2010 03:01:14 +0000
changeset 31147
99a593a0819b
parent 31146
9334bb4736ae
child 31152
f432b3f58724

Sigh, so apparently, I broke receiving smileys with some over-zealous
free-ing of slpmsgs. Remind me not to work at 4AM again.

libpurple/protocols/msn/slplink.c file | annotate | diff | comparison | revisions
--- a/libpurple/protocols/msn/slplink.c	Mon Nov 22 02:39:10 2010 +0000
+++ b/libpurple/protocols/msn/slplink.c	Mon Nov 22 03:01:14 2010 +0000
@@ -502,6 +502,7 @@
 	slpcall = msn_slp_process_msg(slplink, slpmsg);
 
 	if (slpcall == NULL) {
+		msn_slpmsg_destroy(slpmsg);
 		return;
 	}
 
@@ -540,6 +541,8 @@
 		}
 	}
 
+	msn_slpmsg_destroy(slpmsg);
+
 	if (!slpcall->wait_for_socket && slpcall->wasted)
 		msn_slpcall_destroy(slpcall);
 }
@@ -623,7 +626,9 @@
 	if (header->offset + header->length >= header->total_size)
 		process_complete_msg(slplink, slpmsg, header);
 
-	msn_slpmsg_destroy(slpmsg);
+	/* NOTE: The slpmsg will be destroyed in process_complete_msg or left in
+	   the slplink until fully received. Don't free it here!
+	 */
 }
 
 void

mercurial