mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader: Avoid passing NULL to memset(). (ubsan)
Otherwise ubsan reports errors such as: libs/vkd3d-shader/spirv.c:7266:5: runtime error: null pointer passed as argument 1, which is declared to never be null
This commit is contained in:
parent
7b23cd4d3c
commit
8056058aa1
Notes:
Henri Verbeet
2025-01-10 20:15:12 +01:00
Approved-by: Elizabeth Figura (@zfigura) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1327
@ -7259,12 +7259,13 @@ static void spirv_compiler_emit_shader_epilogue_invocation(struct spirv_compiler
|
||||
|
||||
static void spirv_compiler_emit_hull_shader_main(struct spirv_compiler *compiler)
|
||||
{
|
||||
size_t table_count = compiler->offset_info.descriptor_table_count;
|
||||
struct vkd3d_spirv_builder *builder = &compiler->spirv_builder;
|
||||
uint32_t void_id;
|
||||
|
||||
/* If a patch constant function used descriptor indexing the offsets must be reloaded. */
|
||||
memset(compiler->descriptor_offset_ids, 0, compiler->offset_info.descriptor_table_count
|
||||
* sizeof(*compiler->descriptor_offset_ids));
|
||||
if (table_count)
|
||||
memset(compiler->descriptor_offset_ids, 0, table_count * sizeof(*compiler->descriptor_offset_ids));
|
||||
vkd3d_spirv_builder_begin_main_function(builder);
|
||||
vkd3d_spirv_build_op_label(builder, vkd3d_spirv_alloc_id(builder));
|
||||
|
||||
|
@ -379,7 +379,8 @@ size_t bytecode_align(struct vkd3d_bytecode_buffer *buffer)
|
||||
return aligned_size;
|
||||
}
|
||||
|
||||
memset(buffer->data + buffer->size, 0xab, aligned_size - buffer->size);
|
||||
if (aligned_size > buffer->size)
|
||||
memset(&buffer->data[buffer->size], 0xab, aligned_size - buffer->size);
|
||||
buffer->size = aligned_size;
|
||||
return aligned_size;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user