Huw Davies : combase: Don't start dllhost if the CLSID key doesn't exist.

Alexandre Julliard julliard at winehq.org
Wed Apr 6 16:09:00 CDT 2022


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

Author: Huw Davies <huw at codeweavers.com>
Date:   Wed Apr  6 15:22:29 2022 +0100

combase: Don't start dllhost if the CLSID key doesn't exist.

Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/combase/rpc.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/dlls/combase/rpc.c b/dlls/combase/rpc.c
index f620339f19e..c8401fe0cbd 100644
--- a/dlls/combase/rpc.c
+++ b/dlls/combase/rpc.c
@@ -538,6 +538,12 @@ static HRESULT create_surrogate_server(REFCLSID rclsid, HANDLE *process)
 
     TRACE("Attempting to start surrogate server for %s\n", debugstr_guid(rclsid));
 
+    hr = open_key_for_clsid(rclsid, NULL, KEY_READ, &key);
+    if (FAILED(hr) && (arch == 64 || (IsWow64Process(GetCurrentProcess(), &is_wow64) && is_wow64)))
+        hr = open_key_for_clsid(rclsid, NULL, opposite | KEY_READ, &key);
+    if (FAILED(hr)) return hr;
+    RegCloseKey(key);
+
     hr = open_appidkey_from_clsid(rclsid, KEY_READ, &key);
     if (FAILED(hr) && (arch == 64 || (IsWow64Process(GetCurrentProcess(), &is_wow64) && is_wow64)))
     {




More information about the wine-cvs mailing list