MDL-70137 cache: Use sensible default when reading MUC config
authorAndrew Nicols <andrew@nicols.co.uk>
Fri, 6 Nov 2020 07:27:46 +0000 (15:27 +0800)
committerVíctor Déniz <victor@moodle.com>
Fri, 6 Nov 2020 19:16:44 +0000 (19:16 +0000)
When we read the MUC configuration, a file which exists but is empty
will not error, but will cause all configuration to be empty.

We already perform an {{is_array()}} check on the {{$configuration}}
variable, but the default value for {{$configuration}} is an empty
array. In the case where the file exists, but is empty, no errors occur
when the file is loaded, and the initial {{$configuration}} value is
not overwritten, leading to the file being replaced with an empty copy.

cache/classes/config.php

index 53d0f1e..021e2a6 100644 (file)
@@ -323,7 +323,7 @@ class cache_config {
      * @throws cache_exception
      */
     protected function include_configuration() {
-        $configuration = array();
+        $configuration = null;
         // We need to allow for late static bindings to allow for class path mudling happending for unit tests.
         $cachefile = static::get_config_file_path();
 
@@ -594,4 +594,4 @@ class cache_config {
         }
         throw new cache_exception('ex_nodefaultlock');
     }
-}
\ No newline at end of file
+}