Module: wine Branch: master Commit: ac36e446c3b38e3092821087d64ef8629ab5e141 URL: https://source.winehq.org/git/wine.git/?a=commit;h=ac36e446c3b38e3092821087d...
Author: Józef Kucia jkucia@codeweavers.com Date: Thu Jan 24 12:31:22 2019 +0100
d3d9: Validate surface parameter in d3d9_device_ColorFill().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46482 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
---
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 a26d943..067ea2b 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 1f28fe1..c06acb7 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);