Paul Vriens : crypt32: Bail out on registry errors and return the error ( if any).

Alexandre Julliard julliard at wine.codeweavers.com
Fri Sep 8 10:24:48 CDT 2006


Module: wine
Branch: master
Commit: 4388bdac70debcf600e52c70abdd3de6274759c1
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=4388bdac70debcf600e52c70abdd3de6274759c1

Author: Paul Vriens <Paul.Vriens at xs4all.nl>
Date:   Fri Sep  8 13:19:26 2006 +0200

crypt32: Bail out on registry errors and return the error (if any).

---

 dlls/crypt32/main.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/dlls/crypt32/main.c b/dlls/crypt32/main.c
index 4c0166d..3c9c050 100644
--- a/dlls/crypt32/main.c
+++ b/dlls/crypt32/main.c
@@ -198,6 +198,7 @@ BOOL WINAPI CryptSIPAddProvider(SIP_ADD_
     static const WCHAR szVerify[] = {
        'V','e','r','i','f','y',
        'I','n','d','i','r','e','c','t','D','a','t','a',0};
+    LONG r = ERROR_SUCCESS;
 
     TRACE("%p\n", psNewProv);
 
@@ -220,8 +221,9 @@ BOOL WINAPI CryptSIPAddProvider(SIP_ADD_
           debugstr_w( psNewProv->pwszIsFunctionName ) );
 
 #define CRYPT_SIPADDPROV( key, field ) \
-    CRYPT_SIPWriteFunction( psNewProv->pgSubject, key, \
-           psNewProv->pwszDLLFileName, psNewProv->field)
+    r = CRYPT_SIPWriteFunction( psNewProv->pgSubject, key, \
+           psNewProv->pwszDLLFileName, psNewProv->field); \
+    if (r != ERROR_SUCCESS) goto end_function
 
     CRYPT_SIPADDPROV( szPutSigned, pwszPutFuncName );
     CRYPT_SIPADDPROV( szGetSigned, pwszGetFuncName );
@@ -232,6 +234,14 @@ #define CRYPT_SIPADDPROV( key, field ) \
 
 #undef CRYPT_SIPADDPROV
 
+end_function:
+
+    if (r != ERROR_SUCCESS)
+    {
+        SetLastError(r);
+        return FALSE;
+    }
+
     return TRUE;
 }
 




More information about the wine-cvs mailing list