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:
@@ -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->code, 4 * v->code_size);
|
||||||
|
|
||||||
blob_copy_bytes(blob, &v->uniforms.count, sizeof(v->uniforms.count));
|
blob_copy_bytes(blob, &v->uniforms.count, sizeof(v->uniforms.count));
|
||||||
v->uniforms.contents = malloc(v->uniforms.count * sizeof(v->uniforms.contents));
|
v->uniforms.contents = malloc(v->uniforms.count * sizeof(*v->uniforms.contents));
|
||||||
v->uniforms.data = malloc(v->uniforms.count * sizeof(v->uniforms.data));
|
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.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.data, v->uniforms.count * sizeof(*v->uniforms.data));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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->code, 4 * v->code_size);
|
||||||
|
|
||||||
blob_write_bytes(blob, &v->uniforms.count, sizeof(v->uniforms.count));
|
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.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.data, imm_count * sizeof(*v->uniforms.data));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
Reference in New Issue
Block a user