mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
vkd3d-shader: Avoid passing NULL to memcpy(). (ubsan)
Otherwise when passing "-fsanitize=undefined" to the compiler, ubsan reports such as: libs/vkd3d-shader/ir.c:3794:5: runtime error: null pointer passed as argument 1, which is declared to never be null
This commit is contained in:
parent
29bac62ba2
commit
eaf4d0bfbf
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
@ -2031,7 +2031,8 @@ static bool shader_signature_merge(struct shader_signature *s, uint8_t range_map
|
|||||||
element_count = s->element_count;
|
element_count = s->element_count;
|
||||||
if (!(elements = vkd3d_malloc(element_count * sizeof(*elements))))
|
if (!(elements = vkd3d_malloc(element_count * sizeof(*elements))))
|
||||||
return false;
|
return false;
|
||||||
memcpy(elements, s->elements, element_count * sizeof(*elements));
|
if (element_count)
|
||||||
|
memcpy(elements, s->elements, element_count * sizeof(*elements));
|
||||||
|
|
||||||
for (i = 0; i < element_count; ++i)
|
for (i = 0; i < element_count; ++i)
|
||||||
elements[i].sort_index = i;
|
elements[i].sort_index = i;
|
||||||
@ -3836,7 +3837,8 @@ static enum vkd3d_result vsir_cfg_structure_list_append_from_region(struct vsir_
|
|||||||
sizeof(*list->structures)))
|
sizeof(*list->structures)))
|
||||||
return VKD3D_ERROR_OUT_OF_MEMORY;
|
return VKD3D_ERROR_OUT_OF_MEMORY;
|
||||||
|
|
||||||
memcpy(&list->structures[list->count], begin, size * sizeof(*begin));
|
if (size)
|
||||||
|
memcpy(&list->structures[list->count], begin, size * sizeof(*begin));
|
||||||
|
|
||||||
list->count += size;
|
list->count += size;
|
||||||
|
|
||||||
|
@ -396,7 +396,8 @@ size_t bytecode_put_bytes_unaligned(struct vkd3d_bytecode_buffer *buffer, const
|
|||||||
buffer->status = VKD3D_ERROR_OUT_OF_MEMORY;
|
buffer->status = VKD3D_ERROR_OUT_OF_MEMORY;
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
memcpy(buffer->data + offset, bytes, size);
|
if (size)
|
||||||
|
memcpy(&buffer->data[offset], bytes, size);
|
||||||
buffer->size = offset + size;
|
buffer->size = offset + size;
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user