[PATCH v2 2/2] dxgi: Check NULL output parameter in dxgi_adapter_EnumOutputs().

Zhiyi Zhang zzhang at codeweavers.com
Thu Feb 20 06:48:18 CST 2020


Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
---
 dlls/dxgi/adapter.c    | 3 +++
 dlls/dxgi/tests/dxgi.c | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/dlls/dxgi/adapter.c b/dlls/dxgi/adapter.c
index d2fc629c84..7cdf7bd0d6 100644
--- a/dlls/dxgi/adapter.c
+++ b/dlls/dxgi/adapter.c
@@ -128,6 +128,9 @@ static HRESULT STDMETHODCALLTYPE dxgi_adapter_EnumOutputs(IWineDXGIAdapter *ifac
 
     TRACE("iface %p, output_idx %u, output %p.\n", iface, output_idx, output);
 
+    if (!output)
+        return E_INVALIDARG;
+
     if (output_idx > 0)
     {
         *output = NULL;
diff --git a/dlls/dxgi/tests/dxgi.c b/dlls/dxgi/tests/dxgi.c
index 3ff42c4bc6..e2b5df7b27 100644
--- a/dlls/dxgi/tests/dxgi.c
+++ b/dlls/dxgi/tests/dxgi.c
@@ -1175,6 +1175,9 @@ static void test_output(void)
     hr = IDXGIDevice_GetAdapter(device, &adapter);
     ok(SUCCEEDED(hr), "GetAdapter failed, hr %#x.\n", hr);
 
+    hr = IDXGIAdapter_EnumOutputs(adapter, 0, NULL);
+    ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
+
     hr = IDXGIAdapter_EnumOutputs(adapter, 0, &output);
     if (hr == DXGI_ERROR_NOT_FOUND)
     {
-- 
2.20.1



More information about the wine-devel mailing list