dxgi: Check NULL adapter parameter in dxgi_factory_EnumAdapterByLuid().

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
feature/deterministic
Zhiyi Zhang 2020-02-20 20:48:04 +08:00 committed by Alexandre Julliard
parent eaacf86d6b
commit 23a8887ded
2 changed files with 10 additions and 0 deletions

View File

@ -403,6 +403,9 @@ static HRESULT STDMETHODCALLTYPE dxgi_factory_EnumAdapterByLuid(IWineDXGIFactory
TRACE("iface %p, luid %08x:%08x, iid %s, adapter %p.\n",
iface, luid.HighPart, luid.LowPart, debugstr_guid(iid), adapter);
if (!adapter)
return DXGI_ERROR_INVALID_CALL;
adapter_index = 0;
while ((hr = dxgi_factory_EnumAdapters1(iface, adapter_index, &adapter1)) == S_OK)
{

View File

@ -912,6 +912,10 @@ static void test_adapter_luid(void)
return;
}
hr = IDXGIFactory4_EnumAdapterByLuid(factory4, device_adapter_desc.AdapterLuid,
&IID_IDXGIAdapter, NULL);
ok(hr == DXGI_ERROR_INVALID_CALL, "Got unexpected hr %#x.\n", hr);
hr = IDXGIFactory4_EnumAdapterByLuid(factory4, device_adapter_desc.AdapterLuid,
&IID_IDXGIAdapter, (void **)&adapter);
todo_wine ok(hr == S_OK, "Failed to enum adapter by LUID, hr %#x.\n", hr);
@ -4949,6 +4953,9 @@ static void test_multi_adapter(void)
return;
}
hr = IDXGIFactory_EnumAdapters(factory, 0, NULL);
ok(hr == DXGI_ERROR_INVALID_CALL, "Got unexpected hr %#x.\n", hr);
hr = IDXGIFactory_EnumAdapters(factory, 0, &adapter);
if (hr == DXGI_ERROR_NOT_FOUND)
{