vkd3d-shader/dxbc: Emit a shader error for an invalid signature data size.

This commit is contained in:
Conor McCarthy 2023-03-07 14:04:44 +10:00 committed by Alexandre Julliard
parent 83e39e2650
commit 3b5316be82
Notes: Alexandre Julliard 2023-03-08 21:51:46 +01:00
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/113
2 changed files with 3 additions and 0 deletions

View File

@ -1929,6 +1929,8 @@ static int shader_parse_signature(const struct vkd3d_shader_dxbc_section_desc *s
if (!require_space(0, 2, sizeof(uint32_t), section->data.size))
{
WARN("Invalid data size %#zx.\n", section->data.size);
vkd3d_shader_error(message_context, NULL, VKD3D_SHADER_ERROR_DXBC_INVALID_SIGNATURE,
"Section size %zu is smaller than the minimum signature header size.\n", section->data.size);
return VKD3D_ERROR_INVALID_ARGUMENT;
}

View File

@ -69,6 +69,7 @@ enum vkd3d_shader_error
VKD3D_SHADER_ERROR_DXBC_INVALID_CHUNK_OFFSET = 5,
VKD3D_SHADER_ERROR_DXBC_INVALID_CHUNK_SIZE = 6,
VKD3D_SHADER_ERROR_DXBC_OUT_OF_MEMORY = 7,
VKD3D_SHADER_ERROR_DXBC_INVALID_SIGNATURE = 8,
VKD3D_SHADER_ERROR_TPF_MISMATCHED_CF = 1000,
VKD3D_SHADER_ERROR_TPF_INVALID_REGISTER_RANGE = 1001,