Mesa (master): disk_cache: assert if a cache entries keys don't match mesa

Timothy Arceri tarceri at kemper.freedesktop.org
Sun Aug 27 23:29:36 UTC 2017


Module: Mesa
Branch: master
Commit: 2422124f6ee7d60b519b0fa7eeab9340901fd1d9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2422124f6ee7d60b519b0fa7eeab9340901fd1d9

Author: Timothy Arceri <tarceri at itsqueeze.com>
Date:   Fri Aug 25 14:04:19 2017 +1000

disk_cache: assert if a cache entries keys don't match mesa

In ef42423e7be9 I enabled the check for release builds however we
still want to assert in debug builds in case of collisions or
just general bugs with the key building/compare code. Otherwise
it will just fail silently effectively disabling the cache.

Reviewed-by: Eduardo Lima Mitev <elima at igalia.com>

---

 src/util/disk_cache.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c
index 36c1e8e72c..b789a454eb 100644
--- a/src/util/disk_cache.c
+++ b/src/util/disk_cache.c
@@ -1085,8 +1085,10 @@ disk_cache_get(struct disk_cache *cache, const cache_key key, size_t *size)
       goto fail;
 
    /* Check for extremely unlikely hash collisions */
-   if (memcmp(cache->driver_keys_blob, file_header, ck_size) != 0)
+   if (memcmp(cache->driver_keys_blob, file_header, ck_size) != 0) {
+      assert(!"Mesa cache keys mismatch!");
       goto fail;
+   }
 
    size_t cache_item_md_size = sizeof(uint32_t);
    uint32_t md_type;




More information about the mesa-commit mailing list