aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmime
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-05-21 13:31:28 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-05-21 13:31:28 +0100
commit430a45adf42309e63c1b8e7302f64a96614d35f6 (patch)
tree09b0ce7cece96157495c7dbb8f0f5aa5024843c4 /src/libmime
parent1c957d5ea3d1f21877fd647544486e6696ac39bd (diff)
downloadrspamd-430a45adf42309e63c1b8e7302f64a96614d35f6.tar.gz
rspamd-430a45adf42309e63c1b8e7302f64a96614d35f6.zip
Do not stem exceptions.
Diffstat (limited to 'src/libmime')
-rw-r--r--src/libmime/message.c32
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);
+ }
}
}
}