From e4b1db2e7005816b5fff823e4858d97207d5aefb Mon Sep 17 00:00:00 2001 From: Marius Cramer <m.cramer@pixcept.de> Date: Tue, 25 Mar 2014 17:27:06 +0100 Subject: [PATCH] Fixed missing escape of " in sieve rules --- .../lib/plugins/mail_user_filter_plugin.inc.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/interface/lib/plugins/mail_user_filter_plugin.inc.php b/interface/lib/plugins/mail_user_filter_plugin.inc.php index df939d376d..774da83994 100644 --- a/interface/lib/plugins/mail_user_filter_plugin.inc.php +++ b/interface/lib/plugins/mail_user_filter_plugin.inc.php @@ -141,13 +141,22 @@ class mail_user_filter_plugin { $content .= 'if header :regex ["'.strtolower($page_form->dataRecord["source"]).'"] ["'; $searchterm = preg_quote($page_form->dataRecord["searchterm"]); - $searchterm = str_replace('\\[', '\\\\[', $searchterm); - $searchterm = str_replace('\\]', '\\\\]', $searchterm); + $searchterm = str_replace( + array( + '"', + '\\[', + '\\]' + ), + array( + '\\"', + '\\\\[', + '\\\\]' + ), $searchterm); if($page_form->dataRecord["op"] == 'contains') { $content .= ".*".$searchterm; } elseif ($page_form->dataRecord["op"] == 'is') { - $content .= $searchterm."$"; + $content .= "^".$searchterm."$"; } elseif ($page_form->dataRecord["op"] == 'begins') { $content .= " ".$searchterm.""; } elseif ($page_form->dataRecord["op"] == 'ends') { -- GitLab