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

This commit is contained in:
Paul Vriens 2006-09-08 13:18:55 +02:00 committed by Alexandre Julliard
parent 8840ef3327
commit 360954e46a
1 changed files with 10 additions and 8 deletions

View File

@ -131,7 +131,7 @@ static LONG CRYPT_SIPWriteFunction( LPGUID guid, LPCWSTR szKey,
static const WCHAR szDllName[] = { 'D','l','l',0 }; static const WCHAR szDllName[] = { 'D','l','l',0 };
static const WCHAR szFuncName[] = { 'F','u','n','c','N','a','m','e',0 }; static const WCHAR szFuncName[] = { 'F','u','n','c','N','a','m','e',0 };
WCHAR szFullKey[ 0x100 ]; WCHAR szFullKey[ 0x100 ];
LONG r; LONG r = ERROR_SUCCESS;
HKEY hKey; HKEY hKey;
if( !szFunction ) if( !szFunction )
@ -147,18 +147,20 @@ static LONG CRYPT_SIPWriteFunction( LPGUID guid, LPCWSTR szKey,
TRACE("key is %s\n", debugstr_w( szFullKey ) ); TRACE("key is %s\n", debugstr_w( szFullKey ) );
r = RegCreateKeyW( HKEY_LOCAL_MACHINE, szFullKey, &hKey ); r = RegCreateKeyW( HKEY_LOCAL_MACHINE, szFullKey, &hKey );
if( r != ERROR_SUCCESS ) if( r != ERROR_SUCCESS ) goto error_close_key;
return r;
/* write the values */ /* write the values */
RegSetValueExW( hKey, szFuncName, 0, REG_SZ, (const BYTE*) szFunction, r = RegSetValueExW( hKey, szFuncName, 0, REG_SZ, (const BYTE*) szFunction,
( lstrlenW( szFunction ) + 1 ) * sizeof (WCHAR) ); ( lstrlenW( szFunction ) + 1 ) * sizeof (WCHAR) );
RegSetValueExW( hKey, szDllName, 0, REG_SZ, (const BYTE*) szDll, if( r != ERROR_SUCCESS ) goto error_close_key;
( lstrlenW( szDll ) + 1) * sizeof (WCHAR) ); r = RegSetValueExW( hKey, szDllName, 0, REG_SZ, (const BYTE*) szDll,
( lstrlenW( szDll ) + 1) * sizeof (WCHAR) );
error_close_key:
RegCloseKey( hKey ); RegCloseKey( hKey );
return ERROR_SUCCESS; return r;
} }
BOOL WINAPI CryptSIPAddProvider(SIP_ADD_NEWPROVIDER *psNewProv) BOOL WINAPI CryptSIPAddProvider(SIP_ADD_NEWPROVIDER *psNewProv)