=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: vkd3d: Avoid out-of-bounds array access in d3d12_device_CopyDescriptors().

Alexandre Julliard julliard at winehq.org
Wed Dec 12 13:44:45 CST 2018


Module: vkd3d
Branch: master
Commit: b868b5a258db190c2aafc8cda8de31528b08972e
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=b868b5a258db190c2aafc8cda8de31528b08972e

Author: Józef Kucia <jkucia at 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 at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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;




More information about the wine-cvs mailing list