Matteo Bruni : d3d8: Range-check GetPixelShaderConstant() indices to the d3d8 limit.

Alexandre Julliard julliard at winehq.org
Fri Mar 6 16:38:41 CST 2020


Module: wine
Branch: master
Commit: 9d764892ee713a689402a515e5e723a6a5b94ab4
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=9d764892ee713a689402a515e5e723a6a5b94ab4

Author: Matteo Bruni <mbruni at codeweavers.com>
Date:   Fri Mar  6 12:33:15 2020 +0100

d3d8: Range-check GetPixelShaderConstant() indices to the d3d8 limit.

Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/d3d8/d3d8_private.h | 1 +
 dlls/d3d8/device.c       | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/dlls/d3d8/d3d8_private.h b/dlls/d3d8/d3d8_private.h
index f67841b4b1..488035c7f8 100644
--- a/dlls/d3d8/d3d8_private.h
+++ b/dlls/d3d8/d3d8_private.h
@@ -40,6 +40,7 @@
 #define D3DPRESENTFLAGS_MASK 0x00000fffu
 
 #define D3D8_MAX_VERTEX_SHADER_CONSTANTF 256
+#define D3D8_MAX_PIXEL_SHADER_CONSTANTF 8
 #define D3D8_MAX_STREAMS 16
 
 #define D3DFMT_RESZ MAKEFOURCC('R','E','S','Z')
diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c
index 45b158314e..d6253a4a2b 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -3295,7 +3295,8 @@ static HRESULT WINAPI d3d8_device_GetPixelShaderConstant(IDirect3DDevice8 *iface
 
     TRACE("iface %p, start_idx %u, constants %p, count %u.\n", iface, start_idx, constants, count);
 
-    if (!constants || start_idx >= WINED3D_MAX_PS_CONSTS_F || count > WINED3D_MAX_PS_CONSTS_F - start_idx)
+    if (!constants || start_idx >= D3D8_MAX_PIXEL_SHADER_CONSTANTF
+            || count > D3D8_MAX_PIXEL_SHADER_CONSTANTF - start_idx)
         return WINED3DERR_INVALIDCALL;
 
     wined3d_mutex_lock();




More information about the wine-cvs mailing list