Nikolay Sivov : d3d11: Always initialize out shader pointer in CreateHullShader().

Alexandre Julliard julliard at winehq.org
Fri May 27 16:35:30 CDT 2022


Module: wine
Branch: master
Commit: 1a869de18772b630acea5b9143fcd3ccaa3ff659
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=1a869de18772b630acea5b9143fcd3ccaa3ff659

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Fri May 27 15:02:24 2022 +0300

d3d11: Always initialize out shader pointer in CreateHullShader().

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>

---

 dlls/d3d11/device.c      | 2 ++
 dlls/d3d11/tests/d3d11.c | 7 +++++++
 2 files changed, 9 insertions(+)

diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 7b1c1b9bae0..286874af993 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -3569,6 +3569,8 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateHullShader(ID3D11Device2 *if
     TRACE("iface %p, byte_code %p, byte_code_length %Iu, class_linkage %p, shader %p.\n",
             iface, byte_code, byte_code_length, class_linkage, shader);
 
+    *shader = NULL;
+
     if (class_linkage)
         FIXME("Class linkage is not implemented yet.\n");
 
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
index eb3ac35b824..690f468e6cf 100644
--- a/dlls/d3d11/tests/d3d11.c
+++ b/dlls/d3d11/tests/d3d11.c
@@ -4825,6 +4825,7 @@ static void test_create_shader(const D3D_FEATURE_LEVEL feature_level)
     ID3D11GeometryShader *gs;
     ID3D11VertexShader *vs;
     ID3D11PixelShader *ps;
+    ID3D11HullShader *hs;
     HRESULT hr;
 
     device_desc.feature_level = &feature_level;
@@ -5000,6 +5001,12 @@ static void test_create_shader(const D3D_FEATURE_LEVEL feature_level)
             ID3D11GeometryShader_Release(gs);
     }
 
+    /* Hull shader */
+    hs = (void *)0xdeadbeef;
+    hr = ID3D11Device_CreateHullShader(device, gs_4_0, sizeof(gs_4_0), NULL, &hs);
+    ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
+    ok(!hs, "Unexpected pointer %p.\n", hs);
+
     refcount = ID3D11Device_Release(device);
     ok(!refcount, "Device has %lu references left.\n", refcount);
 }




More information about the wine-cvs mailing list