aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmime
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-03-23 16:17:39 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-03-23 16:17:39 +0000
commit4b11f51f8e13ec8b77041c37279079d057a5e864 (patch)
tree5e2b7341dbec7b1c019840316c14c85f9dcd6985 /src/libmime
parentfe88805f2cea26e7642655c04613e7a32c9f9721 (diff)
downloadrspamd-4b11f51f8e13ec8b77041c37279079d057a5e864.tar.gz
rspamd-4b11f51f8e13ec8b77041c37279079d057a5e864.zip
Fixes to mime regexp parsing.
Diffstat (limited to 'src/libmime')
-rw-r--r--src/libmime/mime_expressions.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/libmime/mime_expressions.c b/src/libmime/mime_expressions.c
index 841610480..6034e3357 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;
}