i965: fix prog_data leak in brw_disk_cache
authorTapani Pälli <tapani.palli@intel.com>
Fri, 26 Jan 2018 08:25:16 +0000 (10:25 +0200)
committerTapani Pälli <tapani.palli@intel.com>
Mon, 29 Jan 2018 06:11:03 +0000 (08:11 +0200)
   ==25481== 576 bytes in 1 blocks are definitely lost in loss record 179 of 208
   ==25481==    at 0x4C2FB6B: malloc (vg_replace_malloc.c:299)
   ==25481==    by 0x1404E2CC: ralloc_size (ralloc.c:121)
   ==25481==    by 0x14119F82: read_and_upload (brw_disk_cache.c:176)
   ==25481==    by 0x1411A5C9: brw_disk_cache_upload_program (brw_disk_cache.c:271)
   ==25481==    by 0x1412FCA4: brw_upload_wm_prog (brw_wm.c:597)

Fixes: 516d50db319 ("i965: add initial implementation of on disk shader cache")
Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
src/mesa/drivers/dri/i965/brw_disk_cache.c

index 7d965f6..6196386 100644 (file)
@@ -185,6 +185,7 @@ read_and_upload(struct brw_context *brw, struct disk_cache *cache,
       }
 
       disk_cache_remove(cache, binary_sha1);
+      ralloc_free(prog_data);
       free(buffer);
       return false;
    }
@@ -236,6 +237,7 @@ read_and_upload(struct brw_context *brw, struct disk_cache *cache,
 
    prog->program_written_to_cache = true;
 
+   ralloc_free(prog_data);
    free(buffer);
 
    return true;