From ac36e446c3b38e3092821087d64ef8629ab5e141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3zef=20Kucia?= Date: Thu, 24 Jan 2019 12:31:22 +0100 Subject: [PATCH] d3d9: Validate surface parameter in d3d9_device_ColorFill(). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46482 Signed-off-by: Józef Kucia Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/d3d9/device.c | 3 +++ dlls/d3d9/tests/visual.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c index a26d943fa30..067ea2bdc2d 100644 --- a/dlls/d3d9/device.c +++ b/dlls/d3d9/device.c @@ -1757,6 +1757,9 @@ static HRESULT WINAPI d3d9_device_ColorFill(IDirect3DDevice9Ex *iface, TRACE("iface %p, surface %p, rect %p, color 0x%08x.\n", iface, surface, rect, color); + if (!surface) + return D3DERR_INVALIDCALL; + wined3d_mutex_lock(); if (FAILED(wined3d_texture_get_sub_resource_desc(surface_impl->wined3d_texture, diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c index 1f28fe13e88..c06acb77d4d 100644 --- a/dlls/d3d9/tests/visual.c +++ b/dlls/d3d9/tests/visual.c @@ -1529,6 +1529,9 @@ static void color_fill_test(void) goto done; } + hr = IDirect3DDevice9_ColorFill(device, NULL, NULL, 0); + ok(hr == D3DERR_INVALIDCALL, "Got unexpected hr %#x.\n", hr); + /* Test ColorFill on a the backbuffer (should pass) */ hr = IDirect3DDevice9_GetBackBuffer(device, 0, 0, D3DBACKBUFFER_TYPE_MONO, &surface); ok(hr == D3D_OK, "Can't get back buffer, hr = %08x\n", hr);