wined3d: Watch out for negative results when validating the shader constant range.
This commit is contained in:
parent
4d3952f3dc
commit
bfbcfd2234
|
@ -4833,7 +4833,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_GetVertexShaderConstantI(
|
|||
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_SetVertexShaderConstantF(
|
|||
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);
|
||||
|
|
Loading…
Reference in New Issue