]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Fix issues with values check
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 1 Mar 2021 10:34:07 +0000 (10:34 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 1 Mar 2021 10:34:07 +0000 (10:34 +0000)
lualib/lua_mime.lua
src/libmime/mime_headers.c

index d94335f5b78b6b91cd8ba775ff4d87b92923e827..3b8344e5fadb32eb3b1ca6390eeb7580689735c0 100644 (file)
@@ -526,8 +526,10 @@ exports.modify_headers = function(task, hdr_alterations)
     local add_tbl = hdr_flattened[hname].add
     if hdr.value then
       table.insert(add_tbl, {hdr.order or -1, hdr.value})
-    else
-      table.insert(add_tbl, {-1, hdr})
+    elseif type(hdr) == 'table' then
+      for _,v in ipairs(hdr) do
+        table.insert(add_tbl, {-1, v})
+      end
     end
   end
 
index a480c6fc68223edd2fbf9c089d7f9b56f9fffb6f..bb7b9373a6cfa7fb5728bfffa3887f884ba2966c 100644 (file)
@@ -1894,7 +1894,9 @@ rspamd_message_set_modified_header (struct rspamd_task *task,
                                const ucl_object_t *order = ucl_array_find_index (cur, 0),
                                        *value = ucl_array_find_index (cur, 1);
 
-                               if (order && value) {
+                               if (order && value &&
+                                       (ucl_object_type (order) == UCL_INT &&
+                                        ucl_object_type (value) == UCL_STRING)) {
                                        int ord = ucl_object_toint (order);
                                        const char *raw_value;
                                        gsize raw_len;