diff --git a/core/lib/Drupal/Core/Cache/DatabaseBackend.php b/core/lib/Drupal/Core/Cache/DatabaseBackend.php index 3fc0227d44..c55a02710f 100644 --- a/core/lib/Drupal/Core/Cache/DatabaseBackend.php +++ b/core/lib/Drupal/Core/Cache/DatabaseBackend.php @@ -167,10 +167,8 @@ protected function prepareItem($cache, $allow_invalid) { // Make sure that corrupt items are properly identified and treated as // cache misses. Otherwise, broken items will be treated as cache hits, // and return a FALSE as the cached data. - if ($unserialized === FALSE) { - if ($cache->data != serialize(FALSE)) { - return FALSE; - } + if ($unserialized === FALSE && $cache->data !== serialize(FALSE)) { + return FALSE; } $cache->data = $unserialized; } diff --git a/core/tests/Drupal/KernelTests/Core/Cache/DatabaseBackendTest.php b/core/tests/Drupal/KernelTests/Core/Cache/DatabaseBackendTest.php index d3d8186779..b615e20177 100644 --- a/core/tests/Drupal/KernelTests/Core/Cache/DatabaseBackendTest.php +++ b/core/tests/Drupal/KernelTests/Core/Cache/DatabaseBackendTest.php @@ -122,7 +122,7 @@ public function testCorruptCacheReturnsFalse() { 'created' => round(microtime(TRUE), 3), 'data' => substr(serialize($this->randomObject()), 0, -5), 'expire' => CacheBackendInterface::CACHE_PERMANENT, - 'tags' => implode(' ', []), + 'tags' => '', 'serialized' => 1, 'checksum' => $cache_tags_checksum->getCurrentChecksum([]), ])->execute();