From 4fdaa02ac724e597479a4a48388a8a10101000fd Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Sat, 6 Apr 2013 19:28:47 +0200 Subject: Fix handling of invalid characters in message headers and output (#1489032) --- program/lib/Roundcube/html.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'program/lib/Roundcube/html.php') diff --git a/program/lib/Roundcube/html.php b/program/lib/Roundcube/html.php index 592720308..7b30e60cb 100644 --- a/program/lib/Roundcube/html.php +++ b/program/lib/Roundcube/html.php @@ -35,6 +35,7 @@ class html public static $common_attrib = array('id','class','style','title','align'); public static $containers = array('iframe','div','span','p','h1','h2','h3','form','textarea','table','thead','tbody','tr','th','td','style','script'); + /** * Constructor * @@ -332,7 +333,16 @@ class html */ public static function quote($str) { - return @htmlspecialchars($str, ENT_COMPAT, RCUBE_CHARSET); + static $flags; + + if (!$flags) { + $flags = ENT_COMPAT; + if (defined('ENT_SUBSTITUTE')) { + $flags |= ENT_SUBSTITUTE; + } + } + + return @htmlspecialchars($str, $flags, RCUBE_CHARSET); } } -- cgit v1.2.3