Well, after quict look at code in camel/providers/imap/camel-imap-utils.c:
( 
http://git.gnome.org./cgit/evolution-data-server/tree/camel/providers/imap/camel-imap-utils.c?id=6be48b0f55981e67fab9f8243d2d504387dc5691
 )

                if (g_ascii_strncasecmp (inptr, "nil", 3) != 0) {
923:                    subtype = imap_parse_string (&inptr, &len);
                } else {
                        subtype = NULL;
                        inptr += 3;
                }

                ctype = camel_content_type_new ("multipart", subtype ? subtype 
: "mixed");
                g_free (subtype);

932:            if (*inptr++ != ')') {
                        camel_content_type_unref (ctype);
                        return NULL;
                }

And then checking imap_parse_string_generic (which is what
imap_parse_string() mapped to via #define )

Reveals that inptr MUST be checked for being NULL after the call.
>From imap_parse_string_generic in-file doc:

 * Return value: the parsed string, or %NULL if a NIL or no string
 * was parsed. (In the former case, *...@str_p will be %NULL; in the
 * latter, it will point to the character after the NIL.)

Conclusion:
1. inptr could need duplicating before call to imap_body_decode(), because it's 
value is not constant
2. inptr MUST be checked for NULL after the call

IMHO - this is a clear bug, even more, specially crafted e-mail and/or IMAP 
server could exploit this bug for DoS at end-user side.
So, could be even a security issue.

-- 
evolution crashed with SIGSEGV after opening email with attachment
https://bugs.launchpad.net/bugs/229669
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to