Module: wine Branch: stable Commit: bcde1d70adba23b1c3b921a7b75b2deb9592258a URL: http://source.winehq.org/git/wine.git/?a=commit;h=bcde1d70adba23b1c3b921a7b7...
Author: Józef Kucia jkucia@codeweavers.com Date: Thu Jan 28 00:17:46 2016 +0100
wined3d: Validate render state in wined3d_device_set_render_state().
Signed-off-by: Józef Kucia jkucia@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org (cherry picked from commit 99fbc04bfe13bf2471725f88000892f8fee9f526) Signed-off-by: Michael Stefaniuc mstefani@winehq.org
---
dlls/wined3d/device.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 057ae18..7753e76 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -1982,10 +1982,17 @@ static void resolve_depth_buffer(struct wined3d_state *state) void CDECL wined3d_device_set_render_state(struct wined3d_device *device, enum wined3d_render_state state, DWORD value) { - DWORD old_value = device->state.render_states[state]; + DWORD old_value;
TRACE("device %p, state %s (%#x), value %#x.\n", device, debug_d3drenderstate(state), state, value);
+ if (state > WINEHIGHEST_RENDER_STATE) + { + WARN("Unhandled render state %#x.\n", state); + return; + } + + old_value = device->state.render_states[state]; device->update_state->render_states[state] = value;
/* Handle recording of state blocks. */