diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-05-21 13:31:28 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-05-21 13:31:28 +0100 |
commit | 430a45adf42309e63c1b8e7302f64a96614d35f6 (patch) | |
tree | 09b0ce7cece96157495c7dbb8f0f5aa5024843c4 /src/libmime | |
parent | 1c957d5ea3d1f21877fd647544486e6696ac39bd (diff) | |
download | rspamd-430a45adf42309e63c1b8e7302f64a96614d35f6.tar.gz rspamd-430a45adf42309e63c1b8e7302f64a96614d35f6.zip |
Do not stem exceptions.
Diffstat (limited to 'src/libmime')
-rw-r--r-- | src/libmime/message.c | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/libmime/message.c b/src/libmime/message.c index 786510822..d34dd5598 100644 --- a/src/libmime/message.c +++ b/src/libmime/message.c @@ -1208,23 +1208,25 @@ rspamd_normalize_text_part (struct rspamd_task *task, r = sb_stemmer_stem (stem, w->begin, w->len); } - if (stem != NULL && r != NULL) { - nlen = strlen (r); - nlen = MIN (nlen, w->len); - w->begin = rspamd_mempool_alloc (task->task_pool, nlen); - memcpy (w->begin, r, nlen); - w->len = nlen; - } - else { - temp_word = w->begin; - w->begin = rspamd_mempool_alloc (task->task_pool, w->len); - memcpy (w->begin, temp_word, w->len); - - if (IS_PART_UTF (part)) { - rspamd_str_lc_utf8 (w->begin, w->len); + if (w->len > 0 && !(w->len == 6 && memcmp (w->begin, "!!EX!!", 6) == 0)) { + if (stem != NULL && r != NULL) { + nlen = strlen (r); + nlen = MIN (nlen, w->len); + w->begin = rspamd_mempool_alloc (task->task_pool, nlen); + memcpy (w->begin, r, nlen); + w->len = nlen; } else { - rspamd_str_lc (w->begin, w->len); + temp_word = w->begin; + w->begin = rspamd_mempool_alloc (task->task_pool, w->len); + memcpy (w->begin, temp_word, w->len); + + if (IS_PART_UTF (part)) { + rspamd_str_lc_utf8 (w->begin, w->len); + } + else { + rspamd_str_lc (w->begin, w->len); + } } } } |