]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-9959 debugging() shows warnings when called from call_user_func() functions
authorskodak <skodak>
Sun, 27 May 2007 22:55:52 +0000 (22:55 +0000)
committerskodak <skodak>
Sun, 27 May 2007 22:55:52 +0000 (22:55 +0000)
MDL-9958 addslashes_recursive() and stripslashes_recursive() modifies function parameter in PHP5

lib/weblib.php

index 81b0a2da7d2e145b59870a3652ff05a37a396007..6993c8eef976e80915139387e23f2e7d7bc3e67f 100644 (file)
@@ -497,21 +497,27 @@ function stripslashes_safe($mixed) {
  * @return mixed
  */
 function stripslashes_recursive($var) {
-    if(is_object($var)) {
+    if (is_object($var)) {
+        $new_var = new object();
         $properties = get_object_vars($var);
         foreach($properties as $property => $value) {
-            $var->$property = stripslashes_recursive($value);
+            $new_var->$property = stripslashes_recursive($value);
         }
-    }
-    else if(is_array($var)) {
+
+    } else if(is_array($var)) {
+        $new_var = array();
         foreach($var as $property => $value) {
-            $var[$property] = stripslashes_recursive($value);
+            $new_var[$property] = stripslashes_recursive($value);
         }
+
+    } else if(is_string($var)) {
+        $new_var = stripslashes($var);
+
+    } else {
+        $new_var = $var;
     }
-    else if(is_string($var)) {
-        $var = stripslashes($var);
-    }
-    return $var;
+
+    return $new_var;
 }
 
 /**
@@ -526,21 +532,27 @@ function stripslashes_recursive($var) {
  * @return mixed
  */
 function addslashes_recursive($var) {
-    if(is_object($var)) {
+    if (is_object($var)) {
+        $new_var = new object();
         $properties = get_object_vars($var);
         foreach($properties as $property => $value) {
-            $var->$property = addslashes_recursive($value);
+            $new_var->$property = addslashes_recursive($value);
         }
-    }
-    else if(is_array($var)) {
+
+    } else if (is_array($var)) {
+        $new_var = array();
         foreach($var as $property => $value) {
-            $var[$property] = addslashes_recursive($value);
+            $new_var[$property] = addslashes_recursive($value);
         }
+
+    } else if (is_string($var)) {
+        $new_var = addslashes($var);
+
+    } else {
+        $new_var = $var;
     }
-    else if(is_string($var)) {
-        $var = addslashes($var);
-    }
-    return $var;
+
+    return $new_var;
 }
 
 /**
@@ -6157,6 +6169,12 @@ function debugging($message='', $level=DEBUG_NORMAL) {
             $callers = debug_backtrace();
             $from = '<ul style="text-align: left">';
             foreach ($callers as $caller) {
+                if (!isset($caller['line'])) {
+                    $caller['line'] = '?'; // probably call_user_func()
+                }
+                if (!isset($caller['file'])) {
+                    $caller['file'] = $CFG->dirroot.'/unknownfile'; // probably call_user_func()   
+                }
                 $from .= '<li>line ' . $caller['line'] . ' of ' . substr($caller['file'], strlen($CFG->dirroot) + 1);
                 if (isset($caller['function'])) {
                     $from .= ': call to ';