summaryrefslogtreecommitdiffstats
path: root/src/libmime
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-07-17 13:51:07 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-07-17 13:51:07 +0100
commit2fed92c0756145ad4f78b0ad1f020e0c2019df91 (patch)
treed5e1481efe20778dbb5ab62d59b6e4124d3ff86e /src/libmime
parentbaa26167fbb7844292cc1fd830e91bcb68e7ea48 (diff)
downloadrspamd-2fed92c0756145ad4f78b0ad1f020e0c2019df91.tar.gz
rspamd-2fed92c0756145ad4f78b0ad1f020e0c2019df91.zip
Do not compare parts with no words.
Diffstat (limited to 'src/libmime')
-rw-r--r--src/libmime/message.c35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/libmime/message.c b/src/libmime/message.c
index a8df8aea9..e9e0af777 100644
--- a/src/libmime/message.c
+++ b/src/libmime/message.c
@@ -1674,22 +1674,25 @@ rspamd_message_parse (struct rspamd_task *task)
p1->normalized_words && p2->normalized_words) {
tw = MAX (p1->normalized_words->len, p2->normalized_words->len);
- dw = rspamd_words_levenshtein_distance (p1->normalized_words,
- p2->normalized_words);
- diff = tw > 0 ? (100.0 * (gdouble)(tw - dw) / (gdouble)tw) : 100;
-
- msg_info (
- "different words: %d, total words: %d, "
- "got likeliness between parts of %d%%",
- dw, tw,
- diff);
-
- pdiff = rspamd_mempool_alloc (task->task_pool, sizeof (gint));
- *pdiff = diff;
- rspamd_mempool_set_variable (task->task_pool,
- "parts_distance",
- pdiff,
- NULL);
+
+ if (tw > 0) {
+ dw = rspamd_words_levenshtein_distance (p1->normalized_words,
+ p2->normalized_words);
+ diff = tw > 0 ? (100.0 * (gdouble)(tw - dw) / (gdouble)tw) : 100;
+
+ msg_info (
+ "different words: %d, total words: %d, "
+ "got likeliness between parts of %d%%",
+ dw, tw,
+ diff);
+
+ pdiff = rspamd_mempool_alloc (task->task_pool, sizeof (gint));
+ *pdiff = diff;
+ rspamd_mempool_set_variable (task->task_pool,
+ "parts_distance",
+ pdiff,
+ NULL);
+ }
}
}
}