]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Encode headers that we send to milter add header
authorVsevolod Stakhov <vsevolod@rspamd.com>
Wed, 17 Jul 2024 11:26:26 +0000 (12:26 +0100)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Wed, 17 Jul 2024 11:26:26 +0000 (12:26 +0100)
src/plugins/lua/milter_headers.lua

index b53a454572e3d2738de2a36bd3de08196552429a..58a227feca792765f27db35881a9c5e41627c176 100644 (file)
@@ -22,7 +22,7 @@ end
 -- A plugin that provides common header manipulations
 
 local logger = require "rspamd_logger"
-local util = require "rspamd_util"
+local rspamd_util = require "rspamd_util"
 local N = 'milter_headers'
 local lua_util = require "lua_util"
 local lua_maps = require "lua_maps"
@@ -30,7 +30,7 @@ local lua_mime = require "lua_mime"
 local ts = require("tableshape").types
 local E = {}
 
-local HOSTNAME = util.get_hostname()
+local HOSTNAME = rspamd_util.get_hostname()
 
 local settings = {
   remove_upstream_spam_flag = true;
@@ -213,6 +213,13 @@ local function milter_headers(task)
     if not add[hname] then
       add[hname] = {}
     end
+    if rspamd_config:is_mime_utf8() then
+      if not rspamd_util.is_valid_utf8(value) then
+        value = rspamd_util.mime_header_encode(value)
+      end
+    else
+      value = rspamd_util.mime_header_encode(value)
+    end
     table.insert(add[hname], {
       order = (order or settings.default_headers_order or -1),
       value = lua_util.fold_header(task, hname, value, stop_chars)