radeonsi: reject invalid vertex buffer indices at state creation
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
@@ -970,11 +970,6 @@ bool si_upload_vertex_buffer_descriptors(struct si_context *sctx)
|
||||
unsigned offset;
|
||||
uint32_t *desc = &ptr[i*4];
|
||||
|
||||
if (ve->vertex_buffer_index >= ARRAY_SIZE(sctx->vertex_buffer)) {
|
||||
memset(desc, 0, 16);
|
||||
continue;
|
||||
}
|
||||
|
||||
vb = &sctx->vertex_buffer[ve->vertex_buffer_index];
|
||||
rbuffer = (struct r600_resource*)vb->buffer;
|
||||
if (!rbuffer) {
|
||||
|
@@ -3335,6 +3335,12 @@ static void *si_create_vertex_elements(struct pipe_context *ctx,
|
||||
const struct util_format_channel_description *channel;
|
||||
unsigned data_format, num_format;
|
||||
int first_non_void;
|
||||
unsigned vbo_index = elements[i].vertex_buffer_index;
|
||||
|
||||
if (vbo_index >= SI_NUM_VERTEX_BUFFERS) {
|
||||
FREE(v);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
desc = util_format_description(elements[i].src_format);
|
||||
first_non_void = util_format_get_first_non_void_channel(elements[i].src_format);
|
||||
|
Reference in New Issue
Block a user