From 360954e46aac3d531848a2e67c791b965472c5cf Mon Sep 17 00:00:00 2001 From: Paul Vriens Date: Fri, 8 Sep 2006 13:18:55 +0200 Subject: [PATCH] crypt32: Bail out on registry errors and return the error (if any). --- dlls/crypt32/main.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/dlls/crypt32/main.c b/dlls/crypt32/main.c index 86b9cf40d0e..6f269433d4d 100644 --- a/dlls/crypt32/main.c +++ b/dlls/crypt32/main.c @@ -131,7 +131,7 @@ static LONG CRYPT_SIPWriteFunction( LPGUID guid, LPCWSTR szKey, static const WCHAR szDllName[] = { 'D','l','l',0 }; static const WCHAR szFuncName[] = { 'F','u','n','c','N','a','m','e',0 }; WCHAR szFullKey[ 0x100 ]; - LONG r; + LONG r = ERROR_SUCCESS; HKEY hKey; if( !szFunction ) @@ -147,18 +147,20 @@ static LONG CRYPT_SIPWriteFunction( LPGUID guid, LPCWSTR szKey, TRACE("key is %s\n", debugstr_w( szFullKey ) ); r = RegCreateKeyW( HKEY_LOCAL_MACHINE, szFullKey, &hKey ); - if( r != ERROR_SUCCESS ) - return r; + if( r != ERROR_SUCCESS ) goto error_close_key; /* write the values */ - RegSetValueExW( hKey, szFuncName, 0, REG_SZ, (const BYTE*) szFunction, - ( lstrlenW( szFunction ) + 1 ) * sizeof (WCHAR) ); - RegSetValueExW( hKey, szDllName, 0, REG_SZ, (const BYTE*) szDll, - ( lstrlenW( szDll ) + 1) * sizeof (WCHAR) ); + r = RegSetValueExW( hKey, szFuncName, 0, REG_SZ, (const BYTE*) szFunction, + ( lstrlenW( szFunction ) + 1 ) * sizeof (WCHAR) ); + if( r != ERROR_SUCCESS ) goto error_close_key; + r = RegSetValueExW( hKey, szDllName, 0, REG_SZ, (const BYTE*) szDll, + ( lstrlenW( szDll ) + 1) * sizeof (WCHAR) ); + +error_close_key: RegCloseKey( hKey ); - return ERROR_SUCCESS; + return r; } BOOL WINAPI CryptSIPAddProvider(SIP_ADD_NEWPROVIDER *psNewProv)