From: Vsevolod Stakhov Date: Mon, 23 Mar 2015 16:17:39 +0000 (+0000) Subject: Fixes to mime regexp parsing. X-Git-Tag: 0.9.0~450^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b11f51f8e13ec8b77041c37279079d057a5e864;p=thirdparty%2Frspamd.git Fixes to mime regexp parsing. --- diff --git a/src/libmime/mime_expressions.c b/src/libmime/mime_expressions.c index 8416104805..6034e33574 100644 --- a/src/libmime/mime_expressions.c +++ b/src/libmime/mime_expressions.c @@ -567,7 +567,9 @@ rspamd_mime_expr_parse (const gchar *line, gsize len, break; case bad_atom: g_set_error (err, rspamd_mime_expr_quark(), 100, "cannot parse" - " mime atom '%*.s' when reading symbol '%c'", (gint)len, line, t); + " mime atom '%s' when reading symbol '%c' at offset %d, " + "near %*.s", line, t, (gint)(p - line), + (gint)MIN (end - p, 10), p); return NULL; case end_atom: goto set; @@ -575,9 +577,9 @@ rspamd_mime_expr_parse (const gchar *line, gsize len, } set: - if (p - line == 0 || (state != got_ebrace || state != got_second_slash || - state != in_flags)) { - g_set_error (err, rspamd_mime_expr_quark(), 200, "inclomplete or empty" + if (p - line == 0 || (state != got_ebrace && state != got_second_slash && + state != in_flags && state != end_atom)) { + g_set_error (err, rspamd_mime_expr_quark(), 200, "incomplete or empty" " mime atom"); return NULL; }