summaryrefslogtreecommitdiffstats
path: root/system/core/Loader.php
diff options
context:
space:
mode:
authorAndrey Andreev <narf@devilix.net>2016-03-11 17:19:23 +0100
committerAndrey Andreev <narf@devilix.net>2016-03-11 17:19:23 +0100
commit92d1cc05362998ceabe39c4023f41fd939c1f5b2 (patch)
treea506f92f27313435ee53ea2153c958356c785fba /system/core/Loader.php
parent1be8987176ad422ae6bc8af5c8f148eba9b5dff1 (diff)
Add a defensive check in CI_Loader::_ci_load()
Prevents possible internal variable overwrites when loading views
Diffstat (limited to 'system/core/Loader.php')
-rw-r--r--system/core/Loader.php8
1 files changed, 8 insertions, 0 deletions
diff --git a/system/core/Loader.php b/system/core/Loader.php
index 62781a7bf..c742ae71a 100644
--- a/system/core/Loader.php
+++ b/system/core/Loader.php
@@ -936,6 +936,14 @@ class CI_Loader {
*/
if (is_array($_ci_vars))
{
+ foreach (array_keys($_ci_vars) as $key)
+ {
+ if (strncmp($key, '_ci_', 4) === 0)
+ {
+ unset($_ci_vars[$key]);
+ }
+ }
+
$this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars);
}
extract($this->_ci_cached_vars);