From 2fed92c0756145ad4f78b0ad1f020e0c2019df91 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Fri, 17 Jul 2015 13:51:07 +0100 Subject: [PATCH] Do not compare parts with no words. --- src/libmime/message.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/libmime/message.c b/src/libmime/message.c index a8df8aea99..e9e0af7770 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); + } } } } -- 2.47.3