diff --git a/ChangeLog b/ChangeLog index 55da923a..b2b4c402 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2013-09-30 + + * Fixed old vulnerability bug https://bugs.gentoo.org/show_bug.cgi?id=356615 + +2013-07-16 Uwe Tews + + * Fixed made Smarty_Compiler.class.php compatible with PHP 5.5 + + 2012-09-24 Uwe Tews * Fixed escape Smarty error messages to avoid possible script execution diff --git a/libs/Smarty_Compiler.class.php b/libs/Smarty_Compiler.class.php index 791ec72c..49ef7d0d 100644 --- a/libs/Smarty_Compiler.class.php +++ b/libs/Smarty_Compiler.class.php @@ -262,11 +262,11 @@ class Smarty_Compiler extends Smarty { reset($this->_folded_blocks); /* replace special blocks by "{php}" */ - $source_content = preg_replace($search.'e', "'" + $source_content = preg_replace_callback($search, create_function ('$matches', "return '" . $this->_quote_replace($this->left_delimiter) . 'php' - . "' . str_repeat(\"\n\", substr_count('\\0', \"\n\")) .'" + . "' . str_repeat(\"\n\", substr_count('\$matches[1]', \"\n\")) .'" . $this->_quote_replace($this->right_delimiter) - . "'" + . "';") , $source_content); /* Gather all template tags. */ @@ -2122,7 +2122,7 @@ class Smarty_Compiler extends Smarty { return null; case 'template': - $compiled_ref = "'$this->_current_file'"; + $compiled_ref = "'" . addslashes($this->_current_file) . "'"; $_max_index = 1; break;