etnaviv: don't read too much from uniform arrays

Fixes: 77af1ca690 ("etnaviv: add disk cache")
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22210>
This commit is contained in:
Tomeu Vizoso
2023-03-20 12:48:50 +01:00
committed by Marge Bot
parent c45ce64ea0
commit 179a694232

View 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