--- a/libpurple/protocols/msn/slpmsg_part.c Tue Jan 11 04:46:53 2011 +0000 +++ b/libpurple/protocols/msn/slpmsg_part.c Tue Jan 11 05:24:33 2011 +0000 @@ -34,10 +34,14 @@ part = g_new0(MsnSlpMessagePart, 1); - if (header) - part->header = g_memdup(header, P2P_PACKET_HEADER_SIZE); - if (footer) - part->footer = g_memdup(footer, P2P_PACKET_FOOTER_SIZE); + if (header) { + part->header = g_new0(MsnP2PHeader, 1); + *part->header = *header; + } + if (footer) { + part->footer = g_new0(MsnP2PFooter, 1); + *part->footer = *footer; + } part->ack_cb = msn_slpmsgpart_ack; part->nak_cb = msn_slpmsgpart_nak;