From 4388bdac70debcf600e52c70abdd3de6274759c1 Mon Sep 17 00:00:00 2001 From: Paul Vriens Date: Fri, 8 Sep 2006 13:19:26 +0200 Subject: [PATCH] crypt32: Bail out on registry errors and return the error (if any). --- dlls/crypt32/main.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/dlls/crypt32/main.c b/dlls/crypt32/main.c index 4c0166d8a94..3c9c05093a9 100644 --- a/dlls/crypt32/main.c +++ b/dlls/crypt32/main.c @@ -198,6 +198,7 @@ BOOL WINAPI CryptSIPAddProvider(SIP_ADD_NEWPROVIDER *psNewProv) 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_NEWPROVIDER *psNewProv) 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 @@ BOOL WINAPI CryptSIPAddProvider(SIP_ADD_NEWPROVIDER *psNewProv) #undef CRYPT_SIPADDPROV +end_function: + + if (r != ERROR_SUCCESS) + { + SetLastError(r); + return FALSE; + } + return TRUE; }