MDL-25674 prevent modification of cached admin record
authorPetr Skoda <info@skodak.org>
Thu, 16 Dec 2010 07:29:23 +0000 (08:29 +0100)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Mon, 20 Dec 2010 13:41:17 +0000 (14:41 +0100)
lib/datalib.php

index 54b69a0..bda8fa3 100644 (file)
@@ -51,9 +51,8 @@ define('LASTACCESS_UPDATE_SECS', 60);
  * Returns $user object of the main admin user
  * primary admin = admin with lowest role_assignment id among admins
  *
- * @global object
- * @static object $myadmin
- * @return object An associative array representing the admin user.
+ * @static stdClass $mainadmin
+ * @return stdClass An associative array representing the admin user.
  */
 function get_admin() {
     static $mainadmin = null;
@@ -66,7 +65,8 @@ function get_admin() {
         //      for now return the first assigned admin
         $mainadmin = reset($admins);
     }
-    return $mainadmin;
+    // we must clone this otherwise code outside can break the static var
+    return clone($mainadmin);
 }
 
 /**