Module: wine Branch: master Commit: 908a8e677cbc3381206f61cccda01c663ed963ef URL: http://source.winehq.org/git/wine.git/?a=commit;h=908a8e677cbc3381206f61cccd...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu May 26 19:36:52 2016 +0200
d3d10: Check if the type was initialised in d3d10_effect_variable_destroy() (AFL).
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/d3d10/effect.c | 51 +++++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 24 deletions(-)
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index 6955445..a684ee5 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -2373,36 +2373,39 @@ static void d3d10_effect_variable_destroy(struct d3d10_effect_variable *v) HeapFree(GetProcessHeap(), 0, v->elements); }
- switch(v->type->basetype) + if (v->type) { - case D3D10_SVT_VERTEXSHADER: - case D3D10_SVT_PIXELSHADER: - case D3D10_SVT_GEOMETRYSHADER: - d3d10_effect_shader_variable_destroy(&v->u.shader, v->type->basetype); - break; + switch (v->type->basetype) + { + case D3D10_SVT_VERTEXSHADER: + case D3D10_SVT_PIXELSHADER: + case D3D10_SVT_GEOMETRYSHADER: + d3d10_effect_shader_variable_destroy(&v->u.shader, v->type->basetype); + break;
- case D3D10_SVT_DEPTHSTENCIL: - if (v->u.state.object.depth_stencil) - ID3D10DepthStencilState_Release(v->u.state.object.depth_stencil); - break; + case D3D10_SVT_DEPTHSTENCIL: + if (v->u.state.object.depth_stencil) + ID3D10DepthStencilState_Release(v->u.state.object.depth_stencil); + break;
- case D3D10_SVT_BLEND: - if (v->u.state.object.blend) - ID3D10BlendState_Release(v->u.state.object.blend); - break; + case D3D10_SVT_BLEND: + if (v->u.state.object.blend) + ID3D10BlendState_Release(v->u.state.object.blend); + break;
- case D3D10_SVT_RASTERIZER: - if (v->u.state.object.rasterizer) - ID3D10RasterizerState_Release(v->u.state.object.rasterizer); - break; + case D3D10_SVT_RASTERIZER: + if (v->u.state.object.rasterizer) + ID3D10RasterizerState_Release(v->u.state.object.rasterizer); + break;
- case D3D10_SVT_SAMPLER: - if (v->u.state.object.sampler) - ID3D10SamplerState_Release(v->u.state.object.sampler); - break; + case D3D10_SVT_SAMPLER: + if (v->u.state.object.sampler) + ID3D10SamplerState_Release(v->u.state.object.sampler); + break;
- default: - break; + default: + break; + } } }