X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fcache.php;h=e8af8f9de119ef543415f2b93523790ca9e6aa87;hb=0c310db23d253e489c27b80f99aeaaa06275fea6;hp=b8016ac4574c37ff73b280dd63101adeb04d4aa6;hpb=50651340ce0d546faf3b77762bba8a85328ba0f3;p=friendica.git diff --git a/include/cache.php b/include/cache.php index b8016ac457..e8af8f9de1 100644 --- a/include/cache.php +++ b/include/cache.php @@ -84,9 +84,14 @@ class Cache { $memcache = self::memcache(); if (is_object($memcache)) { // We fetch with the hostname as key to avoid problems with other applications - $value = $memcache->get(get_app()->get_hostname().":".$key); - if (!is_bool($value)) { - return unserialize($value); + $cached = $memcache->get(get_app()->get_hostname().":".$key); + $value = @unserialize($cached); + + // Only return a value if the serialized value is valid. + // We also check if the db entry is a serialized + // boolean 'false' value (which we want to return). + if ($cached === serialize(false) || $value !== false) { + return $value; } return null; @@ -100,7 +105,15 @@ class Cache { ); if (dbm::is_result($r)) { - return unserialize($r[0]['v']); + $cached = $r[0]['v']; + $value = @unserialize($cached); + + // Only return a value if the serialized value is valid. + // We also check if the db entry is a serialized + // boolean 'false' value (which we want to return). + if ($cached === serialize(false) || $value !== false) { + return $value; + } } return null;