[PATCH vkd3d] vkd3d: Avoid out-of-bounds array access in d3d12_device_CopyDescriptors().

Józef Kucia joseph.kucia at gmail.com
Thu Dec 6 08:28:35 CST 2018


From: Józef Kucia <jkucia at codeweavers.com>

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 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 9e3682830684..5bcfc293fdb5 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;
-- 
2.19.2




More information about the wine-devel mailing list