[crypt32] Set last error on registry errors

Paul Vriens Paul.Vriens at xs4all.nl
Wed Sep 6 08:48:00 CDT 2006


Hi,

testing on w2k3 (when setting permissions on several registry keys) shows that
registry errors are reported.

Changelog
  Set last error on registry errors

Cheers,

Paul.
---
 dlls/crypt32/oid.c |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/dlls/crypt32/oid.c b/dlls/crypt32/oid.c
index 6736e36..46dbe28 100644
--- a/dlls/crypt32/oid.c
+++ b/dlls/crypt32/oid.c
@@ -453,15 +453,24 @@ BOOL WINAPI CryptRegisterOIDFunction(DWO
 
     r = RegCreateKeyA(HKEY_LOCAL_MACHINE, szKey, &hKey);
     CryptMemFree(szKey);
+
+    /* Testing on native shows that registry errors are reported */
     if(r != ERROR_SUCCESS)
+    {
+        SetLastError(r);
         return FALSE;
+    }
 
     /* write the values */
     if (pszOverrideFuncName)
-        RegSetValueExA(hKey, "FuncName", 0, REG_SZ,
-         (const BYTE*)pszOverrideFuncName, lstrlenA(pszOverrideFuncName) + 1);
-    RegSetValueExW(hKey, DllW, 0, REG_SZ, (const BYTE*) pwszDll,
-     (lstrlenW(pwszDll) + 1) * sizeof (WCHAR));
+    {
+        r = RegSetValueExA(hKey, "FuncName", 0, REG_SZ,
+             (const BYTE*)pszOverrideFuncName, lstrlenA(pszOverrideFuncName) + 1);
+        if (r != ERROR_SUCCESS) SetLastError(r);
+    }
+    r = RegSetValueExW(hKey, DllW, 0, REG_SZ, (const BYTE*) pwszDll,
+         (lstrlenW(pwszDll) + 1) * sizeof (WCHAR));
+    if (r != ERROR_SUCCESS) SetLastError(r);
 
     RegCloseKey(hKey);
     return TRUE;
-- 
1.4.2




More information about the wine-patches mailing list