Module: vkd3d Branch: master Commit: 3b5316be821a664e54edc963fd3c69259db7df95 URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/3b5316be821a664e54edc963fd3c69...
Author: Conor McCarthy cmccarthy@codeweavers.com Date: Tue Mar 7 14:04:44 2023 +1000
vkd3d-shader/dxbc: Emit a shader error for an invalid signature data size.
---
libs/vkd3d-shader/dxbc.c | 2 ++ libs/vkd3d-shader/vkd3d_shader_private.h | 1 + 2 files changed, 3 insertions(+)
diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c index b01e30e5..008be3c8 100644 --- a/libs/vkd3d-shader/dxbc.c +++ b/libs/vkd3d-shader/dxbc.c @@ -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; }
diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h index 78a48e55..64a53803 100644 --- a/libs/vkd3d-shader/vkd3d_shader_private.h +++ b/libs/vkd3d-shader/vkd3d_shader_private.h @@ -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,