libpurple/protocols/msn/directconn.c

changeset 31267
26fc2e71129a
parent 31247
57079aab03d0
child 31294
73607ab89c6f
--- a/libpurple/protocols/msn/directconn.c	Thu Dec 23 07:06:33 2010 +0000
+++ b/libpurple/protocols/msn/directconn.c	Mon Dec 27 03:08:45 2010 +0000
@@ -601,8 +601,10 @@
 
 		if (dc->header.length) {
 			part = msn_slpmsgpart_new_from_data(dc->in_buffer + 4, dc->header.length);
-			msn_slplink_process_msg(dc->slplink, part);
-			msn_slpmsgpart_unref(part);
+			if (part) {
+				msn_slplink_process_msg(dc->slplink, part);
+				msn_slpmsgpart_unref(part);
+			}
 		}
 
 		/*
@@ -674,7 +676,7 @@
 		if (dc->in_pos < 4 + packet_length)
 			return;
 
-		if (dc->state != DC_STATE_FOO) {
+		if (dc->state != DC_STATE_FOO && packet_length >= P2P_PACKET_HEADER_SIZE) {
 			MsnP2PHeader *context;
 			
 			/* Skip packet size */

mercurial