From 8d70c0af8f395cfa6354e4e586b156f65954fca3 Mon Sep 17 00:00:00 2001 From: vlakoff Date: Sat, 17 Aug 2013 07:31:29 +0200 Subject: Fix $replace parameter handling in get_config() Code was reached only on first function call, then short-circuited because of the reference cache. --- system/core/Common.php | 58 +++++++++++++++++++++++++++----------------------- 1 file changed, 31 insertions(+), 27 deletions(-) (limited to 'system/core/Common.php') diff --git a/system/core/Common.php b/system/core/Common.php index 21e1df9c6..a90a3ab70 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -230,39 +230,43 @@ if ( ! function_exists('get_config')) if (isset($_config)) { - return $_config[0]; + $config =& $_config[0]; } - - $file_path = APPPATH.'config/config.php'; - $found = FALSE; - if (file_exists($file_path)) + else { - $found = TRUE; - require($file_path); - } + $file_path = APPPATH.'config/config.php'; + $found = FALSE; + if (file_exists($file_path)) + { + $found = TRUE; + require($file_path); + } - // Is the config file in the environment folder? - if (file_exists($file_path = APPPATH.'config/'.ENVIRONMENT.'/config.php')) - { - require($file_path); - } - elseif ( ! $found) - { - set_status_header(503); - echo 'The configuration file does not exist.'; - exit(EXIT_CONFIG); - } + // Is the config file in the environment folder? + if (file_exists($file_path = APPPATH.'config/'.ENVIRONMENT.'/config.php')) + { + require($file_path); + } + elseif ( ! $found) + { + set_status_header(503); + echo 'The configuration file does not exist.'; + exit(EXIT_CONFIG); + } - // Does the $config array exist in the file? - if ( ! isset($config) OR ! is_array($config)) - { - set_status_header(503); - echo 'Your config file does not appear to be formatted correctly.'; - exit(EXIT_CONFIG); + // Does the $config array exist in the file? + if ( ! isset($config) OR ! is_array($config)) + { + set_status_header(503); + echo 'Your config file does not appear to be formatted correctly.'; + exit(EXIT_CONFIG); + } + + $_config[0] =& $config; } // Are any values being dynamically replaced? - if (count($replace) > 0) + if (!empty($replace)) { foreach ($replace as $key => $val) { @@ -273,7 +277,7 @@ if ( ! function_exists('get_config')) } } - return $_config[0] =& $config; + return $config; } } -- cgit v1.2.3-24-g4f1b