Module: vkd3d Branch: master Commit: b868b5a258db190c2aafc8cda8de31528b08972e URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=b868b5a258db190c2aafc8cd...
Author: Józef Kucia jkucia@codeweavers.com Date: Thu Dec 6 15:28:35 2018 +0100
vkd3d: Avoid out-of-bounds array access in d3d12_device_CopyDescriptors().
Signed-off-by: Józef Kucia jkucia@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
libs/vkd3d/device.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index 9e36828..5bcfc29 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -1993,13 +1993,14 @@ static void STDMETHODCALLTYPE d3d12_device_CopyDescriptors(ID3D12Device *iface, { dst_idx = 0; ++dst_range_idx; + + if (dst_range_idx >= dst_descriptor_range_count) + return; + dst = d3d12_desc_from_cpu_handle(dst_descriptor_range_offsets[dst_range_idx]); dst_range_size = dst_descriptor_range_sizes ? dst_descriptor_range_sizes[dst_range_idx] : 1; }
- if (dst_range_idx >= dst_descriptor_range_count) - break; - d3d12_desc_copy(dst++, src++, device);
++dst_idx;