aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2021-03-01 10:34:07 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2021-03-01 10:34:07 +0000
commitb14e9419ca91f289fa717ce27da99819197ee57f (patch)
tree962af802f1b9d95c7146f731aee2bc3a0890b186
parent0a82f42bc508f90d9f23a6a2e087495c04b1a2a5 (diff)
downloadrspamd-b14e9419ca91f289fa717ce27da99819197ee57f.tar.gz
rspamd-b14e9419ca91f289fa717ce27da99819197ee57f.zip
[Minor] Fix issues with values check
-rw-r--r--lualib/lua_mime.lua6
-rw-r--r--src/libmime/mime_headers.c4
2 files changed, 7 insertions, 3 deletions
diff --git a/lualib/lua_mime.lua b/lualib/lua_mime.lua
index d94335f5b..3b8344e5f 100644
--- a/lualib/lua_mime.lua
+++ b/lualib/lua_mime.lua
@@ -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
diff --git a/src/libmime/mime_headers.c b/src/libmime/mime_headers.c
index a480c6fc6..bb7b9373a 100644
--- a/src/libmime/mime_headers.c
+++ b/src/libmime/mime_headers.c
@@ -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;