]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Fuzzy: Fix stat command
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 19 Jul 2019 13:04:16 +0000 (14:04 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 19 Jul 2019 13:04:16 +0000 (14:04 +0100)
Issue: #2989

src/plugins/fuzzy_check.c

index 91d341507e586bbd42b95ebfb932fc5c3fc8d344..a72dfbbb0073e3c9d7b347902ff884e5b854dce4 100644 (file)
@@ -2668,12 +2668,12 @@ fuzzy_generate_commands (struct rspamd_task *task, struct fuzzy_rule *rule,
        struct rspamd_image *image;
        struct fuzzy_cmd_io *io, *cur;
        guint i, j;
-       GPtrArray *res;
+       GPtrArray *res = NULL;
        gboolean check_part, fuzzy_check;
 
-       res = g_ptr_array_sized_new (MESSAGE_FIELD (task, parts)->len + 1);
-
        if (c == FUZZY_STAT) {
+               res = g_ptr_array_sized_new (1);
+
                io = fuzzy_cmd_stat (rule, c, flag, value, task->task_pool);
                if (io) {
                        g_ptr_array_add (res, io);
@@ -2682,6 +2682,12 @@ fuzzy_generate_commands (struct rspamd_task *task, struct fuzzy_rule *rule,
                goto end;
        }
 
+       if (task->message == NULL) {
+               goto end;
+       }
+
+       res = g_ptr_array_sized_new (MESSAGE_FIELD (task, parts)->len + 1);
+
        PTR_ARRAY_FOREACH (MESSAGE_FIELD (task, parts), i, mime_part) {
                check_part = FALSE;
                fuzzy_check = FALSE;
@@ -2740,7 +2746,7 @@ fuzzy_generate_commands (struct rspamd_task *task, struct fuzzy_rule *rule,
        }
 
 end:
-       if (res->len == 0) {
+       if (res && res->len == 0) {
                g_ptr_array_free (res, TRUE);
 
                return NULL;