--- a/libpurple/protocols/msn/slplink.c Thu Jun 26 09:14:42 2008 +0000 +++ b/libpurple/protocols/msn/slplink.c Thu Jun 26 19:05:27 2008 +0000 @@ -593,7 +593,7 @@ } else if (slpmsg->size) { - if (offset < 0 || (offset + len) > slpmsg->size) + if (G_MAXSIZE - len < offset || (offset + len) > slpmsg->size) { purple_debug_error("msn", "Oversized slpmsg - msgsize=%lld offset=%" G_GSIZE_FORMAT " len=%" G_GSIZE_FORMAT "\n",