diff options
| author | Dmitry Osipenko <dmitry.osipenko@collabora.com> | 2024-10-15 22:20:55 +0300 |
|---|---|---|
| committer | Marge Bot <emma+marge@anholt.net> | 2024-10-25 18:06:14 +0000 |
| commit | 5ec424c6bed98a69bf3e56d24af0393225077f44 (patch) | |
| tree | 5d01a7f15dc7707b71fcdfec8ae199caf6a708d3 | |
| parent | 7b40d32187bbdd0cd8da75d4c626ea87dd14b4fb (diff) | |
util/mesa-db: Fix crash on compacting empty DB
Fix mesa_db_compact() segfaulting if compacted DB is empty. This crash
happens on writing cache entry that is bigger than DB's size limit and
when DB is empty, which can be triggered by setting DB size to a small
value.
Fixes: 32211788d053 ("util/disk_cache: Add new mesa-db cache type")
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Acked-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30988>
| -rw-r--r-- | src/util/mesa_cache_db.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/util/mesa_cache_db.c b/src/util/mesa_cache_db.c index f7536ae4a86..4372051c839 100644 --- a/src/util/mesa_cache_db.c +++ b/src/util/mesa_cache_db.c @@ -614,6 +614,9 @@ mesa_db_compact(struct mesa_cache_db *db, int64_t blob_size, return false; num_entries = _mesa_hash_table_num_entries(db->index_db->table); + if (!num_entries) + return true; + entries = calloc(num_entries, sizeof(*entries)); if (!entries) return false; |