etnaviv: don't read too much from uniform arrays
authorTomeu Vizoso <tomeu.vizoso@collabora.com>
Mon, 20 Mar 2023 11:48:50 +0000 (12:48 +0100)
committerMarge Bot <emma+marge@anholt.net>
Thu, 6 Apr 2023 16:51:36 +0000 (16:51 +0000)
Fixes: 77af1ca690f ("etnaviv: add disk cache")
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22210>

src/gallium/drivers/etnaviv/etnaviv_disk_cache.c

index 4897069..f503f92 100644 (file)
@@ -100,11 +100,11 @@ retrieve_variant(struct blob_reader *blob, struct etna_shader_variant *v)
    blob_copy_bytes(blob, v->code, 4 * v->code_size);
 
    blob_copy_bytes(blob, &v->uniforms.count, sizeof(v->uniforms.count));
-   v->uniforms.contents = malloc(v->uniforms.count * sizeof(v->uniforms.contents));
-   v->uniforms.data = malloc(v->uniforms.count * sizeof(v->uniforms.data));
+   v->uniforms.contents = malloc(v->uniforms.count * sizeof(*v->uniforms.contents));
+   v->uniforms.data = malloc(v->uniforms.count * sizeof(*v->uniforms.data));
 
-   blob_copy_bytes(blob, v->uniforms.contents, v->uniforms.count * sizeof(v->uniforms.contents));
-   blob_copy_bytes(blob, v->uniforms.data, v->uniforms.count * sizeof(v->uniforms.data));
+   blob_copy_bytes(blob, v->uniforms.contents, v->uniforms.count * sizeof(*v->uniforms.contents));
+   blob_copy_bytes(blob, v->uniforms.data, v->uniforms.count * sizeof(*v->uniforms.data));
 }
 
 static void
@@ -116,8 +116,8 @@ store_variant(struct blob *blob, const struct etna_shader_variant *v)
    blob_write_bytes(blob, v->code, 4 * v->code_size);
 
    blob_write_bytes(blob, &v->uniforms.count, sizeof(v->uniforms.count));
-   blob_write_bytes(blob, v->uniforms.contents, imm_count * sizeof(v->uniforms.contents));
-   blob_write_bytes(blob, v->uniforms.data, imm_count * sizeof(v->uniforms.data));
+   blob_write_bytes(blob, v->uniforms.contents, imm_count * sizeof(*v->uniforms.contents));
+   blob_write_bytes(blob, v->uniforms.data, imm_count * sizeof(*v->uniforms.data));
 }
 
 bool