From a36a3a3f9847459742649de0c5ccb5a5ff10395c Mon Sep 17 00:00:00 2001 From: skodak Date: Wed, 27 Sep 2006 17:58:17 +0000 Subject: [PATCH] added strict context level checks to get_context_instance() MDL-6709 , the reason is to find typos and buggy code that would be otherwise unnoticed --- lib/accesslib.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/accesslib.php b/lib/accesslib.php index 18623d4ac0..dc1a4c5fcd 100755 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -1208,16 +1208,24 @@ function validate_context($contextlevel, $instanceid) { function get_context_instance($contextlevel=NULL, $instance=SITEID) { global $context_cache, $context_cache_id, $CONTEXT; + static $allowed_contexts = array(CONTEXT_SYSTEM, CONTEXT_PERSONAL, CONTEXT_USER, CONTEXT_COURSECAT, CONTEXT_COURSE, CONTEXT_GROUP, CONTEXT_MODULE, CONTEXT_BLOCK); /// If no level is supplied then return the current global context if there is one if (empty($contextlevel)) { if (empty($CONTEXT)) { - debugging("Error: get_context_instance() called without a context"); + //fatal error, code must be fixed + error("Error: get_context_instance() called without a context"); } else { return $CONTEXT; } } +/// check allowed context levels + if (!in_array($contextlevel, $allowed_contexts)) { + // fatal error, code must be fixed - probably typo or switched parameters + error('Error: get_context_instance() called with incorrect context level "'.s($contextlevel).'"'); + } + /// Check the cache if (isset($context_cache[$contextlevel][$instance])) { // Already cached return $context_cache[$contextlevel][$instance]; -- 2.39.5