Józef Kucia : vkd3d: Validate sub-resource index in d3d12_resource_Unmap().
Module: vkd3d Branch: master Commit: 361e5f627436aad94a12faffe711d5f4df617498 URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=361e5f627436aad94a12faff... Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Tue Nov 13 00:23:28 2018 +0100 vkd3d: Validate sub-resource index in d3d12_resource_Unmap(). Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d/resource.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c index 80e7319..f4619ef 100644 --- a/libs/vkd3d/resource.c +++ b/libs/vkd3d/resource.c @@ -885,11 +885,19 @@ static void STDMETHODCALLTYPE d3d12_resource_Unmap(ID3D12Resource *iface, UINT s const D3D12_RANGE *written_range) { struct d3d12_resource *resource = impl_from_ID3D12Resource(iface); + unsigned int sub_resource_count; struct d3d12_device *device; TRACE("iface %p, sub_resource %u, written_range %p.\n", iface, sub_resource, written_range); + sub_resource_count = d3d12_resource_desc_get_sub_resource_count(&resource->desc); + if (sub_resource >= sub_resource_count) + { + WARN("Sub-resource index %u is out of range (%u sub-resources).\n", sub_resource, sub_resource_count); + return; + } + if (!resource->map_count) { WARN("Resource %p is not mapped.\n", resource);
participants (1)
-
Alexandre Julliard