--- a/libpurple/protocols/msn/p2p.c Wed Nov 12 19:15:24 2014 -0500 +++ b/libpurple/protocols/msn/p2p.c Thu Nov 13 00:56:55 2014 -0500 @@ -133,7 +133,9 @@ header->opcode = msn_pop8(wire); header->message_len = msn_pop16be(wire); header->base_id = msn_pop32be(wire); - if (header->header_len + header->message_len + P2P_PACKET_FOOTER_SIZE > max_len) { + if ((gsize)header->header_len + header->message_len + + P2P_PACKET_FOOTER_SIZE > max_len) + { /* Invalid header and data length */ len = 0; break; @@ -208,12 +210,12 @@ char *data_header_wire = NULL; if (header->header_tlv != NULL) - header_wire = msn_tlvlist_write(header->header_tlv, (size_t *)&header->header_len); + header_wire = msn_tlvlist_write(header->header_tlv, &header->header_len); else header->header_len = 0; if (header->data_tlv != NULL) - data_header_wire = msn_tlvlist_write(header->data_tlv, (size_t *)&header->data_header_len); + data_header_wire = msn_tlvlist_write(header->data_tlv, &header->data_header_len); else header->data_header_len = 0;