Module: vkd3d Branch: master Commit: 8a7cb0295a3af538d874a317581db178bc01c86a URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/8a7cb0295a3af538d874a317581db1...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Wed Apr 17 16:06:19 2024 +0200
vkd3d: Avoid leaking "messages" when "error_blob" is NULL in vkd3d_serialize_root_signature(). (Valgrind).
---
libs/vkd3d/vkd3d_main.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/libs/vkd3d/vkd3d_main.c b/libs/vkd3d/vkd3d_main.c index e0345dea..63043b7e 100644 --- a/libs/vkd3d/vkd3d_main.c +++ b/libs/vkd3d/vkd3d_main.c @@ -453,11 +453,10 @@ HRESULT vkd3d_serialize_root_signature(const D3D12_ROOT_SIGNATURE_DESC *desc, if ((ret = vkd3d_shader_serialize_root_signature(&vkd3d_desc, &dxbc, &messages)) < 0) { WARN("Failed to serialize root signature, vkd3d result %d.\n", ret); - if (error_blob && messages) - { - if (FAILED(hr = vkd3d_blob_create(messages, strlen(messages), error_blob))) - ERR("Failed to create error blob, hr %s.\n", debugstr_hresult(hr)); - } + if (!error_blob) + vkd3d_shader_free_messages(messages); + else if (messages && FAILED(hr = vkd3d_blob_create(messages, strlen(messages), error_blob))) + ERR("Failed to create error blob, hr %s.\n", debugstr_hresult(hr)); return hresult_from_vkd3d_result(ret); } vkd3d_shader_free_messages(messages);