From 7229be58c9a064d033b7a901e0a47bdfe97db394 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Tue, 29 Nov 2016 11:29:13 +0000 Subject: [PATCH] [Fix] Fix replacements to sanitize '%' character Conflicts: src/plugins/lua/spamassassin.lua --- src/plugins/lua/spamassassin.lua | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/plugins/lua/spamassassin.lua b/src/plugins/lua/spamassassin.lua index 1019dd3933..27940212a8 100644 --- a/src/plugins/lua/spamassassin.lua +++ b/src/plugins/lua/spamassassin.lua @@ -1068,14 +1068,15 @@ local function apply_replacements(str) end local function replace_all_tags(s) - local str, matches - str = s + local sstr + sstr = s each(function(n, t) - str,matches = string.gsub(str, string.format("<%s>", n), - string.format("%s%s%s", pre, t, post)) + local rep = string.format("%s%s%s", pre, t, post) + rep = string.gsub(rep, '%%', '%%%%') + sstr = string.gsub(sstr, string.format("<%s>", n), rep) end, replace['tags']) - return str + return sstr end local s = replace_all_tags(str) -- 2.47.3