summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorge Villase?or <masca@cpw.pidgin.im>2010-07-06 18:56:58 +0000
committerJorge Villase?or <masca@cpw.pidgin.im>2010-07-06 18:56:58 +0000
commit728a73f7a766aa900dad0734d64f5a700fcbdb0a (patch)
tree9f5a95644f548f3ff91a57a4f4a7bd3761d9baea
parent66614d8300e1b8d1457b6c660951babeee50c9f9 (diff)
downloadpidgin-728a73f7a766aa900dad0734d64f5a700fcbdb0a.tar.gz
Set the correct length of the data before calling the function to process it.
-rw-r--r--libpurple/protocols/msn/msg.c8
-rw-r--r--libpurple/protocols/msn/slplink.c3
2 files changed, 6 insertions, 5 deletions
diff --git a/libpurple/protocols/msn/msg.c b/libpurple/protocols/msn/msg.c
index 3b5b135901..42764ad78f 100644
--- a/libpurple/protocols/msn/msg.c
+++ b/libpurple/protocols/msn/msg.c
@@ -942,8 +942,12 @@ msn_p2p_msg(MsnCmdProc *cmdproc, MsnMessage *msg)
data = msn_message_get_bin_data(msg, &len);
- if (msg->part)
- msn_slplink_process_msg(slplink, msg->part->header, data, len);
+ if (msg->part) {
+ len -= P2P_PACKET_HEADER_SIZE;
+ len -= P2P_PACKET_FOOTER_SIZE;
+
+ msn_slplink_process_msg(slplink, msg->part->header, data+P2P_PACKET_HEADER_SIZE, len);
+ }
else /* This should never happen. */
purple_debug_fatal("msn", "P2P message without a Part.\n");
}
diff --git a/libpurple/protocols/msn/slplink.c b/libpurple/protocols/msn/slplink.c
index 0ce79e3798..52525efa1f 100644
--- a/libpurple/protocols/msn/slplink.c
+++ b/libpurple/protocols/msn/slplink.c
@@ -463,9 +463,6 @@ msn_slplink_process_msg(MsnSlpLink *slplink, MsnP2PHeader *header, const char *d
MsnSlpMessage *slpmsg;
guint64 offset;
- len -= P2P_PACKET_HEADER_SIZE;
- len -= P2P_PACKET_FOOTER_SIZE;
-
if (header->total_size < header->length)
{
/* We seem to have received a bad header */