[wintrust] Only register actions when HKLM\Software\Microsoft\Cryptography\Providers\Trust can be opened

Paul Vriens Paul.Vriens at xs4all.nl
Wed Sep 6 03:04:27 CDT 2006


Hi,

there is no need to try and register actions when
HKLM\Software\Microsoft\Cryptography\Providers\Trust can not be opened as the
actions are all subkeys of this key.

Changelog
  Only register actions when
HKLM\Software\Microsoft\Cryptography\Providers\Trust can be opened

Cheers,

Paul.
---
 dlls/wintrust/register.c |   44 ++++++++++++++++++++++++++------------------
 1 files changed, 26 insertions(+), 18 deletions(-)

diff --git a/dlls/wintrust/register.c b/dlls/wintrust/register.c
index 9f229cb..90cc063 100644
--- a/dlls/wintrust/register.c
+++ b/dlls/wintrust/register.c
@@ -719,9 +719,6 @@ HRESULT WINAPI DllRegisterServer(void)
 
     TRACE("\n");
 
-    /* Create the necessary action registry structures */
-    WINTRUST_InitRegStructs();
-
     /* FIXME:
      * 
      * A short list of stuff that should be done here:
@@ -742,22 +739,33 @@ HRESULT WINAPI DllRegisterServer(void)
 
     /* Check if we can open/create HKLM\Software\Microsoft\Cryptography\Providers\Trust */
     if (RegCreateKeyExW(HKEY_LOCAL_MACHINE, Trust, 0, NULL, 0, KEY_WRITE, NULL, &Key, NULL) != ERROR_SUCCESS)
+    {
+        /* If the opening/creation of the key fails, there is no need to do the action registrations as they
+         * will fail as well.
+         */
         Res = S_FALSE;
-    RegCloseKey(Key);
-
-    /* Register several Trust Provider actions */
-    WINTRUST_RegisterGenVerifyV2();
-    WINTRUST_RegisterPublishedSoftware();
-    WINTRUST_RegisterPublishedSoftwareNoBadUi();
-    WINTRUST_RegisterGenCertVerify();
-    WINTRUST_RegisterTrustProviderTest();
-    WINTRUST_RegisterHttpsProv();
-    WINTRUST_RegisterOfficeSignVerify();
-    WINTRUST_RegisterDriverVerify();
-    WINTRUST_RegisterGenChainVerify();
-
-    /* Free the registry structures */
-    WINTRUST_FreeRegStructs();
+    }
+    else
+    {
+        RegCloseKey(Key);
+
+        /* Create the necessary action registry structures */
+        WINTRUST_InitRegStructs();
+
+        /* Register several Trust Provider actions */
+        WINTRUST_RegisterGenVerifyV2();
+        WINTRUST_RegisterPublishedSoftware();
+        WINTRUST_RegisterPublishedSoftwareNoBadUi();
+        WINTRUST_RegisterGenCertVerify();
+        WINTRUST_RegisterTrustProviderTest();
+        WINTRUST_RegisterHttpsProv();
+        WINTRUST_RegisterOfficeSignVerify();
+        WINTRUST_RegisterDriverVerify();
+        WINTRUST_RegisterGenChainVerify();
+
+        /* Free the registry structures */
+        WINTRUST_FreeRegStructs();
+    }
 
     return Res;
 }
-- 
1.4.2




More information about the wine-patches mailing list