Mesa (master): freedreno: Fix leak of shader binary on disk cache hits.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Nov 16 22:33:02 UTC 2020


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

Author: Eric Anholt <eric at anholt.net>
Date:   Mon Aug  3 19:23:34 2020 -0700

freedreno: Fix leak of shader binary on disk cache hits.

It's supposed to be ralloced -- there's not even a shader variant destroy
function for freeing, just ralloc_free() on the ir3_shader_variant or the
parent ir3_shader when you're done!

Fixes: f97acb4bb4b1 ("freedreno/ir3: disk-cache support")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5810>

---

 src/freedreno/ir3/ir3_disk_cache.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/freedreno/ir3/ir3_disk_cache.c b/src/freedreno/ir3/ir3_disk_cache.c
index a2249f25de3..78726710758 100644
--- a/src/freedreno/ir3/ir3_disk_cache.c
+++ b/src/freedreno/ir3/ir3_disk_cache.c
@@ -126,7 +126,7 @@ retrieve_variant(struct blob_reader *blob, struct ir3_shader_variant *v)
 	 * pointers need special handling:
 	 */
 
-	v->bin = malloc(4 * v->info.sizedwords);
+	v->bin = rzalloc_size(v, 4 * v->info.sizedwords);
 	blob_copy_bytes(blob, v->bin, 4 * v->info.sizedwords);
 
 	if (!v->binning_pass) {



More information about the mesa-commit mailing list