summaryrefslogtreecommitdiffstats
path: root/src/libserver/re_cache.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-05-04 16:03:51 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-05-04 16:03:51 +0100
commitb152b39df64263ceda213eb61ed6e744e5092a03 (patch)
tree3e219435d72647a1857eca57c96362883c9f974e /src/libserver/re_cache.c
parentd09485324dead2461703837228f389711e77c002 (diff)
downloadrspamd-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.c38
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;