Stefan Dösinger : wined3d: Watch out for negative results when validating the shader constant range.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Aug 9 16:18:35 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: bfbcfd22342c2469b54d64514471f5dfa0bdb02e
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=bfbcfd22342c2469b54d64514471f5dfa0bdb02e

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Wed Aug  9 18:02:28 2006 +0200

wined3d: Watch out for negative results when validating the shader constant range.

---

 dlls/wined3d/device.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index e508699..9ac8cf9 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -4833,7 +4833,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl
     TRACE("(iface %p, dstData %p, start %d, count %d)\n",
             iface, dstData, start, count);
 
-    if (dstData == NULL || cnt < 0)
+    if (dstData == NULL || ((signed int) MAX_CONST_I - (signed int) start) <= (signed int) 0)
         return WINED3DERR_INVALIDCALL;
 
     memcpy(dstData, &This->stateBlock->vertexShaderConstantI[start * 4], cnt * sizeof(int) * 4);
@@ -4852,7 +4852,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl
     TRACE("(iface %p, srcData %p, start %d, count %d)\n",
             iface, srcData, start, count);
 
-    if (srcData == NULL || cnt < 0)
+    if (srcData == NULL || ((signed int) GL_LIMITS(vshader_constantsF) - (signed int) start) <= (signed int) 0)
         return WINED3DERR_INVALIDCALL;
 
     memcpy(&This->updateStateBlock->vertexShaderConstantF[start * 4], srcData, cnt * sizeof(float) * 4);




More information about the wine-cvs mailing list