diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2018-05-04 16:03:51 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2018-05-04 16:03:51 +0100 |
commit | b152b39df64263ceda213eb61ed6e744e5092a03 (patch) | |
tree | 3e219435d72647a1857eca57c96362883c9f974e /src/libserver/re_cache.c | |
parent | d09485324dead2461703837228f389711e77c002 (diff) | |
download | rspamd-b152b39df64263ceda213eb61ed6e744e5092a03.tar.gz rspamd-b152b39df64263ceda213eb61ed6e744e5092a03.zip |
[Fix] Fix raw_mime regexp on HTML part with no text content
Issue: #2218
Closes: #2218
Diffstat (limited to 'src/libserver/re_cache.c')
-rw-r--r-- | src/libserver/re_cache.c | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/src/libserver/re_cache.c b/src/libserver/re_cache.c index 98fe0a395..c47db5761 100644 --- a/src/libserver/re_cache.c +++ b/src/libserver/re_cache.c @@ -880,26 +880,34 @@ rspamd_re_cache_exec_re (struct rspamd_task *task, for (i = 0; i < task->text_parts->len; i++) { part = g_ptr_array_index (task->text_parts, i); - /* Skip empty parts */ - if (IS_PART_EMPTY (part)) { - lenvec[i] = 0; - scvec[i] = (guchar *) ""; - continue; - } - - /* Check raw flags */ - if (!IS_PART_UTF (part)) { - raw = TRUE; - } /* Select data for regexp */ if (re_class->type == RSPAMD_RE_RAWMIME) { - in = part->raw.begin; - len = part->raw.len; + if (part->raw.len == 0) { + len = 0; + in = ""; + } + else { + in = part->raw.begin; + len = part->raw.len; + } + raw = TRUE; } else { - in = part->content->data; - len = part->content->len; + /* Skip empty parts */ + if (IS_PART_EMPTY (part)) { + len = 0; + in = ""; + } + else { + /* Check raw flags */ + if (!IS_PART_UTF (part)) { + raw = TRUE; + } + + in = part->content->data; + len = part->content->len; + } } scvec[i] = (guchar *) in; |