From 4ff220f94b30db5c9b58734270ba9599cb1c7101 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Tue, 29 Apr 2014 22:02:47 +0200 Subject: [PATCH] ddraw: Reject setting a 0 material handle in d3d_viewport_SetBackground(). --- dlls/ddraw/viewport.c | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) diff --git a/dlls/ddraw/viewport.c b/dlls/ddraw/viewport.c index 99c6ec98c8a..e557161fba2 100644 --- a/dlls/ddraw/viewport.c +++ b/dlls/ddraw/viewport.c @@ -524,39 +524,18 @@ static HRESULT WINAPI d3d_viewport_LightElements(IDirect3DViewport3 *iface, return DDERR_UNSUPPORTED; } -/***************************************************************************** - * IDirect3DViewport3::SetBackground - * - * Sets the background material - * - * Params: - * hMat: Handle from a IDirect3DMaterial interface - * - * Returns: - * D3D_OK on success - * - *****************************************************************************/ -static HRESULT WINAPI d3d_viewport_SetBackground(IDirect3DViewport3 *iface, D3DMATERIALHANDLE hMat) +static HRESULT WINAPI d3d_viewport_SetBackground(IDirect3DViewport3 *iface, D3DMATERIALHANDLE material) { struct d3d_viewport *viewport = impl_from_IDirect3DViewport3(iface); struct d3d_material *m; - TRACE("iface %p, material %#x.\n", iface, hMat); + TRACE("iface %p, material %#x.\n", iface, material); wined3d_mutex_lock(); - if (!hMat) + if (!(m = ddraw_get_object(&viewport->ddraw->d3ddevice->handle_table, material - 1, DDRAW_HANDLE_MATERIAL))) { - viewport->background = NULL; - TRACE("Setting background to NULL\n"); - wined3d_mutex_unlock(); - return D3D_OK; - } - - m = ddraw_get_object(&viewport->ddraw->d3ddevice->handle_table, hMat - 1, DDRAW_HANDLE_MATERIAL); - if (!m) - { - WARN("Invalid material handle.\n"); + WARN("Invalid material handle %#x.\n", material); wined3d_mutex_unlock(); return DDERR_INVALIDPARAMS; }