--- a/libpurple/protocols/simple/sipmsg.c Sat Jan 11 21:43:32 2014 -0800
+++ b/libpurple/protocols/simple/sipmsg.c Sat Jan 11 22:57:47 2014 -0800
@@ -35,6 +35,8 @@
+#define MAX_CONTENT_LENGTH 30000000 struct sipmsg *sipmsg_parse_msg(const gchar *msg) {
const char *tmp = strstr(msg, "\r\n\r\n");
@@ -118,6 +120,11 @@
purple_debug_warning("simple", "Invalid body length: %d",
+ } else if (msg->bodylen > MAX_CONTENT_LENGTH) { + purple_debug_warning("simple", "Got Content-Length of %d bytes on " + "incoming message (max is %u bytes). Ignoring message body.\n", + msg->bodylen, MAX_CONTENT_LENGTH);