]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Compare parts with many words by just using their length
authorVsevolod Stakhov <vsevolod@rspamd.com>
Wed, 31 May 2023 14:04:51 +0000 (15:04 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Wed, 31 May 2023 14:04:51 +0000 (15:04 +0100)
src/libmime/message.c

index af8ad0e566d4fe87112900a6932b1633a894b1ba..bdc1378d9e511c4adc19915b99271cfd9c9d8821 100644 (file)
@@ -585,9 +585,17 @@ rspamd_words_levenshtein_distance (struct rspamd_task *task,
        s2len = w2->len;
 
        if (s1len + s2len > max_words) {
-               msg_err_task ("cannot compare parts with more than %ud words: (%ud + %ud)",
+               msg_info_task ("cannot direct compare multipart/alternative parts with more than %ud words in total: "
+                                          "(%ud words in one part and %ud in another)",
                                max_words, s1len, s2len);
-               return 0;
+
+               /* Use approximate comparison of number of words */
+               if (s1len > s2len) {
+                       return s1len - s2len;
+               }
+               else {
+                       return s2len - s1len;
+               }
        }
 
        column = g_malloc0 ((s1len + 1) * sizeof (guint));