]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
datalist_get() was incorrectly setting escaped values in the cache.
authorBrett Profitt <brett.profitt@gmail.com>
Sat, 25 Jun 2011 16:36:53 +0000 (12:36 -0400)
committerBrett Profitt <brett.profitt@gmail.com>
Sun, 26 Jun 2011 00:03:58 +0000 (20:03 -0400)
engine/lib/configuration.php

index cbc083bd06df9a229a80863676707f6d3d23531d..b756d2e706691376876b36d4dce1536693bf4557 100644 (file)
@@ -282,8 +282,8 @@ function datalist_set($name, $value) {
                return false;
        }
 
-       $name = sanitise_string($name);
-       $value = sanitise_string($value);
+       $sanitised_name = sanitise_string($name);
+       $sanitised_value = sanitise_string($value);
 
        // If memcache is available then invalidate the cached copy
        static $datalist_memcache;
@@ -295,13 +295,16 @@ function datalist_set($name, $value) {
                $datalist_memcache->delete($name);
        }
 
-       insert_data("INSERT into {$CONFIG->dbprefix}datalists"
-               . " set name = '{$name}', value = '{$value}'"
-               . " ON DUPLICATE KEY UPDATE value='{$value}'");
-
-       $DATALIST_CACHE[$name] = $value;
+       $success = insert_data("INSERT into {$CONFIG->dbprefix}datalists"
+               . " set name = '{$sanitised_name}', value = '{$sanitised_value}'"
+               . " ON DUPLICATE KEY UPDATE value='{$sanitised_value}'");
 
-       return true;
+       if ($success) {
+               $DATALIST_CACHE[$name] = $value;
+               return true;
+       } else {
+               return false;
+       }
 }
 
 /**