diff --git a/libsofia-sip-ua/msg/msg_mime.c b/libsofia-sip-ua/msg/msg_mime.c index 430d3f68f..a8bc48660 100644 --- a/libsofia-sip-ua/msg/msg_mime.c +++ b/libsofia-sip-ua/msg/msg_mime.c @@ -401,7 +401,7 @@ msg_multipart_t *msg_multipart_parse(su_home_t *home, m = strlen(boundary) - 2, blen = m - 1; /* Find first delimiter */ - if (memcmp(boundary + 2, p, m - 2) == 0) + if (len >= m - 2 && memcmp(boundary + 2, p, m - 2) == 0) b = p, p = p + m - 2; else if ((p = memmem(p, len, boundary + 1, m - 1))) { if (p != pl->pl_data && p[-1] == '\r')