mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 20:28:04 +02:00
util: disable cache if we have no build-id and timestamp is zero
Timestamp can be zero for example when Flatpak is used. In this case just disable the cache rather then segfaulting when incompatible cache items are loaded. V2: actually return false when mtime is 0. Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
parent
0bdf7b1d0f
commit
ea66bfda88
2 changed files with 9 additions and 4 deletions
|
|
@ -61,10 +61,6 @@ radv_get_build_id(void *ptr, struct mesa_sha1 *ctx)
|
|||
} else
|
||||
#endif
|
||||
if (disk_cache_get_function_timestamp(ptr, ×tamp)) {
|
||||
if (!timestamp) {
|
||||
fprintf(stderr, "radv: The provided filesystem timestamp for the cache is bogus!\n");
|
||||
}
|
||||
|
||||
_mesa_sha1_update(ctx, ×tamp, sizeof(timestamp));
|
||||
} else
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
#ifdef HAVE_DLFCN_H
|
||||
#include <dlfcn.h>
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
#include <assert.h>
|
||||
#include <stdint.h>
|
||||
|
|
@ -100,7 +101,15 @@ disk_cache_get_function_timestamp(void *ptr, uint32_t* timestamp)
|
|||
if (stat(info.dli_fname, &st)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!st.st_mtime) {
|
||||
fprintf(stderr, "Mesa: The provided filesystem timestamp for the cache "
|
||||
"is bogus! Disabling On-disk cache.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
*timestamp = st.st_mtime;
|
||||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue