[PATCH] wbemprox: Provide semi-stub implementation for client_security_QueryBlanket().

Paul Gofman pgofman at codeweavers.com
Mon Aug 31 14:01:25 CDT 2020


Horizon Zero Dawn fails to query system memory size if CoQueryProxyBlanket()
fails for wbem services.

Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
---
 dlls/wbemprox/services.c    | 20 ++++++++++++++++++--
 dlls/wbemprox/tests/query.c |  7 +++++++
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/dlls/wbemprox/services.c b/dlls/wbemprox/services.c
index 3a0963e1f6c..ab7146db2d8 100644
--- a/dlls/wbemprox/services.c
+++ b/dlls/wbemprox/services.c
@@ -88,8 +88,24 @@ static HRESULT WINAPI client_security_QueryBlanket(
     void **pAuthInfo,
     DWORD *pCapabilities )
 {
-    FIXME("\n");
-    return WBEM_E_FAILED;
+    FIXME("semi-stub.\n");
+
+    if (pAuthnSvc)
+        *pAuthnSvc = RPC_C_AUTHN_NONE;
+    if (pAuthzSvc)
+        *pAuthzSvc = RPC_C_AUTHZ_NONE;
+    if (pServerPrincName)
+        *pServerPrincName = NULL;
+    if (pAuthnLevel)
+        *pAuthnLevel = RPC_C_AUTHN_LEVEL_NONE;
+    if (pImpLevel)
+        *pImpLevel = RPC_C_IMP_LEVEL_DEFAULT;
+    if (pAuthInfo)
+        *pAuthInfo = NULL;
+    if (pCapabilities)
+        *pCapabilities = 0;
+
+    return WBEM_NO_ERROR;
 }
 
 static HRESULT WINAPI client_security_SetBlanket(
diff --git a/dlls/wbemprox/tests/query.c b/dlls/wbemprox/tests/query.c
index 17942cd89ae..74fdfaa9bc8 100644
--- a/dlls/wbemprox/tests/query.c
+++ b/dlls/wbemprox/tests/query.c
@@ -1713,6 +1713,7 @@ START_TEST(query)
     BSTR path = SysAllocString( L"ROOT\\CIMV2" );
     IWbemLocator *locator;
     IWbemServices *services;
+    DWORD authn_svc;
     HRESULT hr;
 
     CoInitialize( NULL );
@@ -1728,6 +1729,12 @@ START_TEST(query)
     hr = IWbemLocator_ConnectServer( locator, path, NULL, NULL, NULL, 0, NULL, NULL, &services );
     ok( hr == S_OK, "failed to get IWbemServices interface %08x\n", hr );
 
+    hr = CoQueryProxyBlanket( (IUnknown *)services, NULL, NULL, NULL, NULL, NULL, NULL, NULL );
+    ok( hr == S_OK, "failed to query proxy blanket %08x\n", hr );
+
+    hr = CoQueryProxyBlanket( (IUnknown *)services, &authn_svc, NULL, NULL, NULL, NULL, NULL, NULL );
+    ok( hr == S_OK, "failed to query proxy blanket %08x\n", hr );
+
     hr = CoSetProxyBlanket( (IUnknown *)services, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL,
                             RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE );
     ok( hr == S_OK, "failed to set proxy blanket %08x\n", hr );
-- 
2.26.2




More information about the wine-devel mailing list