Changeset 3583


Ignore:
Timestamp:
Jul 15, 2009, 1:41:41 PM (12 years ago)
Author:
patdenice
Message:

Update smarty to 2.6.26

Location:
branches/2.0/include/smarty
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/2.0/include/smarty/NEWS

    r3001 r3583  
     1Version 2.6.26 (June 18th, 2009)
     2-------------------------------
     3- revert super global access changes, and instead rely on
     4  USE_SUPER_GLOBALS for security
     5
     6Version 2.6.25 (May 19th, 2009)
     7-------------------------------
     8- fix E_NOTICE when sessions are disabled (mohrt)
     9
     10Version 2.6.24 (May 16th, 2009)
     11-------------------------------
     12- fix problem introduced with super global changes (mohrt)
     13
     14Version 2.6.23 (May 13th, 2009)
     15-------------------------------
     16- strip backticks from {math} equations (mohrt)
     17- make PHP super globals read-only from template (mohrt)
     18- throw error when template exists but not readable (mohrt)
     19
    120Version 2.6.22 (Dec 17th, 2008)
    221-------------------------------
  • branches/2.0/include/smarty/README

    r3001 r3583  
    44    Smarty - the PHP compiling template engine
    55
    6 VERSION: 2.6.22
     6VERSION: 2.6.26
    77
    88AUTHORS:
  • branches/2.0/include/smarty/libs/Config_File.class.php

    r3001 r3583  
    2323 *
    2424 * @link http://www.smarty.net/
    25  * @version 2.6.22
     25 * @version 2.6.26
    2626 * @copyright Copyright: 2001-2005 New Digital Group, Inc.
    2727 * @author Andrei Zmievski <andrei@php.net>
     
    3030 */
    3131
    32 /* $Id: Config_File.class.php 2786 2008-09-18 21:04:38Z Uwe.Tews $ */
     32/* $Id: Config_File.class.php 3149 2009-05-23 20:59:25Z monte.ohrt $ */
    3333
    3434/**
  • branches/2.0/include/smarty/libs/Smarty.class.php

    r3121 r3583  
    2121 * For questions, help, comments, discussion, etc., please join the
    2222 * Smarty mailing list. Send a blank e-mail to
    23  * smarty-discussion-subscribe@googlegroups.com
     23 * smarty-discussion-subscribe@googlegroups.com 
    2424 *
    2525 * @link http://www.smarty.net/
     
    2828 * @author Andrei Zmievski <andrei@php.net>
    2929 * @package Smarty
    30  * @version 2.6.22
     30 * @version 2.6.26
    3131 */
    3232
    33 /* $Id: Smarty.class.php 2785 2008-09-18 21:04:12Z Uwe.Tews $ */
     33/* $Id: Smarty.class.php 3163 2009-06-17 14:39:24Z monte.ohrt $ */
    3434
    3535/**
     
    108108     * When set, smarty does uses this value as error_reporting-level.
    109109     *
    110      * @var boolean
     110     * @var integer
    111111     */
    112112    var $error_reporting  =  null;
     
    237237                                    'PHP_TAGS'        => false,
    238238                                    'MODIFIER_FUNCS'  => array('count'),
    239                                     'ALLOW_CONSTANTS'  => false
     239                                    'ALLOW_CONSTANTS'  => false,
     240                                    'ALLOW_SUPER_GLOBALS' => true
    240241                                   );
    241242
     
    465466     * @var string
    466467     */
    467     var $_version              = '2.6.22';
     468    var $_version              = '2.6.26';
    468469
    469470    /**
     
    10581059            // var non-existant, return valid reference
    10591060            $_tmp = null;
    1060             return $_tmp;
     1061            return $_tmp;   
    10611062        }
    10621063    }
     
    11171118    {
    11181119        static $_cache_info = array();
    1119 
     1120       
    11201121        $_smarty_old_error_level = $this->debugging ? error_reporting() : error_reporting(isset($this->error_reporting)
    11211122               ? $this->error_reporting : error_reporting() & ~E_NOTICE);
     
    13041305            return;
    13051306        } else {
    1306             if ($this->debugging) {
    1307                 // capture time for debugging info
    1308                 $_params = array();
    1309                 require_once(SMARTY_CORE_DIR . 'core.get_microtime.php');
    1310                 $this->_smarty_debug_info[$_included_tpls_idx]['exec_time'] = (smarty_core_get_microtime($_params, $this) - $_debug_start_time);
    1311             }
    13121307            error_reporting($_smarty_old_error_level);
    13131308            if (isset($_smarty_results)) { return $_smarty_results; }
     
    15551550                    }
    15561551                    $params['resource_timestamp'] = filemtime($_resource_name);
    1557                     $_return = is_file($_resource_name);
     1552                    $_return = is_file($_resource_name) && is_readable($_resource_name);
    15581553                    break;
    15591554
     
    17181713    function _read_file($filename)
    17191714    {
    1720         if ( file_exists($filename) && ($fd = @fopen($filename, 'rb')) ) {
     1715        if ( file_exists($filename) && is_readable($filename) && ($fd = @fopen($filename, 'rb')) ) {
    17211716            $contents = '';
    17221717            while (!feof($fd)) {
     
    19391934        return eval($code);
    19401935    }
    1941 
     1936   
    19421937    /**
    19431938     * Extracts the filter name from the given callback
    1944      *
     1939     * 
    19451940     * @param callback $function
    19461941     * @return string
     
    19571952                }
    19581953        }
    1959 
     1954 
    19601955    /**#@-*/
    19611956
  • branches/2.0/include/smarty/libs/Smarty_Compiler.class.php

    r3001 r3583  
    1919 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    2020 *
    21  * @link http://www.smarty.net/
     21 * @link http://smarty.php.net/
    2222 * @author Monte Ohrt <monte at ohrt dot com>
    2323 * @author Andrei Zmievski <andrei@php.net>
    24  * @version 2.6.22
     24 * @version 2.6.26
    2525 * @copyright 2001-2005 New Digital Group, Inc.
    2626 * @package Smarty
    2727 */
    2828
    29 /* $Id: Smarty_Compiler.class.php 2966 2008-12-08 15:10:03Z monte.ohrt $ */
     29/* $Id: Smarty_Compiler.class.php 3163 2009-06-17 14:39:24Z monte.ohrt $ */
    3030
    3131/**
     
    7474    var $_strip_depth           =   0;
    7575    var $_additional_newline    =   "\n";
    76    
    77     var $_phpversion            =   0;
    78 
    7976
    8077    /**#@-*/
     
    8481    function Smarty_Compiler()
    8582    {
    86         $this->_phpversion = substr(phpversion(),0,1);
    87 
    8883        // matches double quoted strings:
    8984        // "foobar"
     
    158153        // $foo->bar($foo->bar())
    159154        // $foo->bar($foo->bar($blah,$foo,44,"foo",$foo[0].bar))
    160         // $foo->getBar()->getFoo()
    161         // $foo->getBar()->foo
    162155        $this->_obj_ext_regexp = '\->(?:\$?' . $this->_dvar_guts_regexp . ')';
    163156        $this->_obj_restricted_param_regexp = '(?:'
    164              . '(?:' . $this->_var_regexp . '|' . $this->_num_const_regexp . ')(?:' . $this->_obj_ext_regexp . '(?:\((?:(?:' . $this->_var_regexp . '|' . $this->_num_const_regexp . ')'
    165              . '(?:\s*,\s*(?:' . $this->_var_regexp . '|' . $this->_num_const_regexp . '))*)?\))?)*)';
    166 
    167        $this->_obj_single_param_regexp = '(?:\w+|' . $this->_obj_restricted_param_regexp . '(?:\s*,\s*(?:(?:\w+|'
     157                . '(?:' . $this->_var_regexp . '|' . $this->_num_const_regexp . ')(?:' . $this->_obj_ext_regexp . '(?:\((?:(?:' . $this->_var_regexp . '|' . $this->_num_const_regexp . ')'
     158                . '(?:\s*,\s*(?:' . $this->_var_regexp . '|' . $this->_num_const_regexp . '))*)?\))?)*)';
     159        $this->_obj_single_param_regexp = '(?:\w+|' . $this->_obj_restricted_param_regexp . '(?:\s*,\s*(?:(?:\w+|'
    168160                . $this->_var_regexp . $this->_obj_restricted_param_regexp . ')))*)';
    169 
    170        $this->_obj_params_regexp = '\((?:' . $this->_obj_single_param_regexp
     161        $this->_obj_params_regexp = '\((?:' . $this->_obj_single_param_regexp
    171162                . '(?:\s*,\s*' . $this->_obj_single_param_regexp . ')*)?\)';
    172        $this->_obj_start_regexp = '(?:' . $this->_dvar_regexp . '(?:' . $this->_obj_ext_regexp . ')+)';
    173        $this->_obj_call_regexp = '(?:' . $this->_obj_start_regexp . '(?:' . $this->_obj_params_regexp . ')?(?:' . $this->_dvar_math_regexp . '(?:' . $this->_num_const_regexp . '|' . $this->_dvar_math_var_regexp . ')*)?)';
     163        $this->_obj_start_regexp = '(?:' . $this->_dvar_regexp . '(?:' . $this->_obj_ext_regexp . ')+)';
     164        $this->_obj_call_regexp = '(?:' . $this->_obj_start_regexp . '(?:' . $this->_obj_params_regexp . ')?(?:' . $this->_dvar_math_regexp . '(?:' . $this->_num_const_regexp . '|' . $this->_dvar_math_var_regexp . ')*)?)';
    174165       
    175166        // matches valid modifier syntax:
     
    17061697        // replace double quoted literal string with single quotes
    17071698        $_return = preg_replace('~^"([\s\w]+)"$~',"'\\1'",$_return);
    1708         // escape dollar sign if not printing a var
    1709         $_return = preg_replace('~\$(\W)~',"\\\\\$\\1",$_return);
    17101699        return $_return;
    17111700    }
     
    17211710    {
    17221711        $_has_math = false;
    1723         $_has_php4_method_chaining = false;
    17241712        $_math_vars = preg_split('~('.$this->_dvar_math_regexp.'|'.$this->_qstr_regexp.')~', $var_expr, -1, PREG_SPLIT_DELIM_CAPTURE);
    17251713
     
    18341822                        }
    18351823                    } else {
    1836                        if ($this->_phpversion < 5) {
    1837                          $_has_php4_method_chaining = true;
    1838                          $_output .= "; \$_foo = \$_foo";
    1839                        }
    18401824                        $_output .= $_index;
    18411825                    }
     
    18491833        }
    18501834
    1851         if ($_has_php4_method_chaining) {
    1852            $_tmp = str_replace("'","\'",'$_foo = '.$_output.'; return $_foo;');
    1853            return "eval('".$_tmp."')";
    1854         } else {
    1855            return $_output;
    1856         }
     1835        return $_output;
    18571836    }
    18581837
     
    20692048
    20702049            case 'get':
    2071                 $compiled_ref = ($this->request_use_auto_globals) ? '$_GET' : "\$GLOBALS['HTTP_GET_VARS']";
     2050                if ($this->security && !$this->security_settings['ALLOW_SUPER_GLOBALS']) {
     2051                    $this->_syntax_error("(secure mode) super global access not permitted",
     2052                                         E_USER_WARNING, __FILE__, __LINE__);
     2053                    return;
     2054                }
     2055                $compiled_ref = "\$_GET";
    20722056                break;
    20732057
    20742058            case 'post':
    2075                 $compiled_ref = ($this->request_use_auto_globals) ? '$_POST' : "\$GLOBALS['HTTP_POST_VARS']";
     2059                if ($this->security && !$this->security_settings['ALLOW_SUPER_GLOBALS']) {
     2060                    $this->_syntax_error("(secure mode) super global access not permitted",
     2061                                         E_USER_WARNING, __FILE__, __LINE__);
     2062                    return;
     2063                }
     2064                $compiled_ref = "\$_POST";
    20762065                break;
    20772066
    20782067            case 'cookies':
    2079                 $compiled_ref = ($this->request_use_auto_globals) ? '$_COOKIE' : "\$GLOBALS['HTTP_COOKIE_VARS']";
     2068                if ($this->security && !$this->security_settings['ALLOW_SUPER_GLOBALS']) {
     2069                    $this->_syntax_error("(secure mode) super global access not permitted",
     2070                                         E_USER_WARNING, __FILE__, __LINE__);
     2071                    return;
     2072                }
     2073                $compiled_ref = "\$_COOKIE";
    20802074                break;
    20812075
    20822076            case 'env':
    2083                 $compiled_ref = ($this->request_use_auto_globals) ? '$_ENV' : "\$GLOBALS['HTTP_ENV_VARS']";
     2077                if ($this->security && !$this->security_settings['ALLOW_SUPER_GLOBALS']) {
     2078                    $this->_syntax_error("(secure mode) super global access not permitted",
     2079                                         E_USER_WARNING, __FILE__, __LINE__);
     2080                    return;
     2081                }
     2082                $compiled_ref = "\$_ENV";
    20842083                break;
    20852084
    20862085            case 'server':
    2087                 $compiled_ref = ($this->request_use_auto_globals) ? '$_SERVER' : "\$GLOBALS['HTTP_SERVER_VARS']";
     2086                if ($this->security && !$this->security_settings['ALLOW_SUPER_GLOBALS']) {
     2087                    $this->_syntax_error("(secure mode) super global access not permitted",
     2088                                         E_USER_WARNING, __FILE__, __LINE__);
     2089                    return;
     2090                }
     2091                $compiled_ref = "\$_SERVER";
    20882092                break;
    20892093
    20902094            case 'session':
    2091                 $compiled_ref = ($this->request_use_auto_globals) ? '$_SESSION' : "\$GLOBALS['HTTP_SESSION_VARS']";
     2095                if ($this->security && !$this->security_settings['ALLOW_SUPER_GLOBALS']) {
     2096                    $this->_syntax_error("(secure mode) super global access not permitted",
     2097                                         E_USER_WARNING, __FILE__, __LINE__);
     2098                    return;
     2099                }
     2100                $compiled_ref = "\$_SESSION";
    20922101                break;
    20932102
     
    20972106             */
    20982107            case 'request':
     2108                if ($this->security && !$this->security_settings['ALLOW_SUPER_GLOBALS']) {
     2109                    $this->_syntax_error("(secure mode) super global access not permitted",
     2110                                         E_USER_WARNING, __FILE__, __LINE__);
     2111                    return;
     2112                }
    20992113                if ($this->request_use_auto_globals) {
    2100                     $compiled_ref = '$_REQUEST';
     2114                    $compiled_ref = "\$_REQUEST";
    21012115                    break;
    21022116                } else {
  • branches/2.0/include/smarty/libs/plugins/function.math.php

    r2216 r3583  
    2828    }
    2929
    30     $equation = $params['equation'];
     30    // strip out backticks, not necessary for math
     31    $equation = str_replace('`','',$params['equation']);
    3132
    3233    // make sure parenthesis are balanced
Note: See TracChangeset for help on using the changeset viewer.