From: Jeff Smith Subject: [PATCH 3/3] d3drm: Return error if setting viewport field-of-view to zero or negative value. Message-Id: <20190705142210.25076-3-whydoubt@gmail.com> Date: Fri, 5 Jul 2019 09:22:10 -0500 In-Reply-To: <20190705142210.25076-1-whydoubt@gmail.com> References: <20190705142210.25076-1-whydoubt@gmail.com> Signed-off-by: Jeff Smith --- dlls/d3drm/tests/d3drm.c | 4 ++++ dlls/d3drm/viewport.c | 3 +++ 2 files changed, 7 insertions(+) diff --git a/dlls/d3drm/tests/d3drm.c b/dlls/d3drm/tests/d3drm.c index 88f3db819d..b8d0cf00d3 100644 --- a/dlls/d3drm/tests/d3drm.c +++ b/dlls/d3drm/tests/d3drm.c @@ -2157,6 +2157,8 @@ static void test_Viewport(void) ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr); hr = IDirect3DRMViewport_GetDirect3DViewport(viewport, NULL); ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr); + hr = IDirect3DRMViewport_SetField(viewport, 0.0); + ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr); IDirect3DRMViewport_Release(viewport); ref4 = get_refcount((IUnknown *)d3drm1); @@ -2249,6 +2251,8 @@ static void test_Viewport(void) ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr); hr = IDirect3DRMViewport2_GetDirect3DViewport(viewport2, NULL); ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr); + hr = IDirect3DRMViewport2_SetField(viewport2, 0.0); + ok(hr == D3DRMERR_BADVALUE, "Expected hr == D3DRMERR_BADVALUE, got %#x.\n", hr); IDirect3DRMViewport2_Release(viewport2); ref4 = get_refcount((IUnknown *)d3drm1); diff --git a/dlls/d3drm/viewport.c b/dlls/d3drm/viewport.c index 430c9d470b..c2fa189742 100644 --- a/dlls/d3drm/viewport.c +++ b/dlls/d3drm/viewport.c @@ -523,6 +523,9 @@ static HRESULT WINAPI d3drm_viewport2_SetField(IDirect3DRMViewport2 *iface, D3DV TRACE("iface %p, field %.8e.\n", iface, field); + if (field <= 0.0f) + return D3DRMERR_BADVALUE; + viewport->field = field; return D3DRM_OK; -- 2.14.3