Commit 590cc1ad authored by Paul Chitescu's avatar Paul Chitescu Committed by Alexandre Julliard

kernel32: Reduce registry access to KEY_READ wherever possible.

parent 77b98c9e
...@@ -206,12 +206,12 @@ static BOOL get_use_dns_option(void) ...@@ -206,12 +206,12 @@ static BOOL get_use_dns_option(void)
BOOL ret = TRUE; BOOL ret = TRUE;
_init_attr( &attr, &nameW ); _init_attr( &attr, &nameW );
RtlOpenCurrentUser( KEY_ALL_ACCESS, &root ); RtlOpenCurrentUser( KEY_READ, &root );
attr.RootDirectory = root; attr.RootDirectory = root;
RtlInitUnicodeString( &nameW, NetworkW ); RtlInitUnicodeString( &nameW, NetworkW );
/* @@ Wine registry key: HKCU\Software\Wine\Network */ /* @@ Wine registry key: HKCU\Software\Wine\Network */
if (!NtOpenKey( &hkey, KEY_ALL_ACCESS, &attr )) if (!NtOpenKey( &hkey, KEY_READ, &attr ))
{ {
RtlInitUnicodeString( &nameW, UseDNSW ); RtlInitUnicodeString( &nameW, UseDNSW );
if (!NtQueryValueKey( hkey, &nameW, KeyValuePartialInformation, tmp, sizeof(tmp), &dummy )) if (!NtQueryValueKey( hkey, &nameW, KeyValuePartialInformation, tmp, sizeof(tmp), &dummy ))
...@@ -321,12 +321,12 @@ BOOL WINAPI GetComputerNameW(LPWSTR name,LPDWORD size) ...@@ -321,12 +321,12 @@ BOOL WINAPI GetComputerNameW(LPWSTR name,LPDWORD size)
_init_attr ( &attr, &nameW ); _init_attr ( &attr, &nameW );
RtlInitUnicodeString( &nameW, ComputerW ); RtlInitUnicodeString( &nameW, ComputerW );
if ( ( st = NtOpenKey( &hkey, KEY_ALL_ACCESS, &attr ) ) != STATUS_SUCCESS ) if ( ( st = NtOpenKey( &hkey, KEY_READ, &attr ) ) != STATUS_SUCCESS )
goto out; goto out;
attr.RootDirectory = hkey; attr.RootDirectory = hkey;
RtlInitUnicodeString( &nameW, ActiveComputerNameW ); RtlInitUnicodeString( &nameW, ActiveComputerNameW );
if ( ( st = NtOpenKey( &hsubkey, KEY_ALL_ACCESS, &attr ) ) != STATUS_SUCCESS ) if ( ( st = NtOpenKey( &hsubkey, KEY_READ, &attr ) ) != STATUS_SUCCESS )
goto out; goto out;
RtlInitUnicodeString( &nameW, ComputerNameW ); RtlInitUnicodeString( &nameW, ComputerNameW );
......
...@@ -212,7 +212,7 @@ static BOOL start_debugger(PEXCEPTION_POINTERS epointers, HANDLE hEvent) ...@@ -212,7 +212,7 @@ static BOOL start_debugger(PEXCEPTION_POINTERS epointers, HANDLE hEvent)
attr.SecurityQualityOfService = NULL; attr.SecurityQualityOfService = NULL;
RtlInitUnicodeString( &nameW, AeDebugW ); RtlInitUnicodeString( &nameW, AeDebugW );
if (!NtOpenKey( &hDbgConf, KEY_ALL_ACCESS, &attr )) if (!NtOpenKey( &hDbgConf, KEY_READ, &attr ))
{ {
char buffer[64]; char buffer[64];
KEY_VALUE_PARTIAL_INFORMATION *info; KEY_VALUE_PARTIAL_INFORMATION *info;
......
...@@ -3017,7 +3017,7 @@ static HANDLE NLS_RegOpenKey(HANDLE hRootKey, LPCWSTR szKeyName) ...@@ -3017,7 +3017,7 @@ static HANDLE NLS_RegOpenKey(HANDLE hRootKey, LPCWSTR szKeyName)
RtlInitUnicodeString( &keyName, szKeyName ); RtlInitUnicodeString( &keyName, szKeyName );
InitializeObjectAttributes(&attr, &keyName, 0, hRootKey, NULL); InitializeObjectAttributes(&attr, &keyName, 0, hRootKey, NULL);
if (NtOpenKey( &hkey, KEY_ALL_ACCESS, &attr ) != STATUS_SUCCESS) if (NtOpenKey( &hkey, KEY_READ, &attr ) != STATUS_SUCCESS)
hkey = 0; hkey = 0;
return hkey; return hkey;
......
...@@ -432,7 +432,7 @@ static BOOL set_registry_environment(void) ...@@ -432,7 +432,7 @@ static BOOL set_registry_environment(void)
/* first the system environment variables */ /* first the system environment variables */
RtlInitUnicodeString( &nameW, env_keyW ); RtlInitUnicodeString( &nameW, env_keyW );
if (NtOpenKey( &hkey, KEY_ALL_ACCESS, &attr ) == STATUS_SUCCESS) if (NtOpenKey( &hkey, KEY_READ, &attr ) == STATUS_SUCCESS)
{ {
set_registry_variables( hkey, REG_SZ ); set_registry_variables( hkey, REG_SZ );
set_registry_variables( hkey, REG_EXPAND_SZ ); set_registry_variables( hkey, REG_EXPAND_SZ );
...@@ -441,9 +441,9 @@ static BOOL set_registry_environment(void) ...@@ -441,9 +441,9 @@ static BOOL set_registry_environment(void)
} }
/* then the ones for the current user */ /* then the ones for the current user */
if (RtlOpenCurrentUser( KEY_ALL_ACCESS, &attr.RootDirectory ) != STATUS_SUCCESS) return ret; if (RtlOpenCurrentUser( KEY_READ, &attr.RootDirectory ) != STATUS_SUCCESS) return ret;
RtlInitUnicodeString( &nameW, envW ); RtlInitUnicodeString( &nameW, envW );
if (NtOpenKey( &hkey, KEY_ALL_ACCESS, &attr ) == STATUS_SUCCESS) if (NtOpenKey( &hkey, KEY_READ, &attr ) == STATUS_SUCCESS)
{ {
set_registry_variables( hkey, REG_SZ ); set_registry_variables( hkey, REG_SZ );
set_registry_variables( hkey, REG_EXPAND_SZ ); set_registry_variables( hkey, REG_EXPAND_SZ );
...@@ -542,7 +542,7 @@ static void set_additional_environment(void) ...@@ -542,7 +542,7 @@ static void set_additional_environment(void)
attr.SecurityDescriptor = NULL; attr.SecurityDescriptor = NULL;
attr.SecurityQualityOfService = NULL; attr.SecurityQualityOfService = NULL;
RtlInitUnicodeString( &nameW, profile_keyW ); RtlInitUnicodeString( &nameW, profile_keyW );
if (!NtOpenKey( &hkey, KEY_ALL_ACCESS, &attr )) if (!NtOpenKey( &hkey, KEY_READ, &attr ))
{ {
profile_dir = get_reg_value( hkey, profiles_valueW ); profile_dir = get_reg_value( hkey, profiles_valueW );
all_users_dir = get_reg_value( hkey, all_users_valueW ); all_users_dir = get_reg_value( hkey, all_users_valueW );
......
...@@ -119,7 +119,7 @@ void RELAY16_InitDebugLists(void) ...@@ -119,7 +119,7 @@ void RELAY16_InitDebugLists(void)
static const WCHAR SnoopIncludeW[] = {'S','n','o','o','p','I','n','c','l','u','d','e',0}; static const WCHAR SnoopIncludeW[] = {'S','n','o','o','p','I','n','c','l','u','d','e',0};
static const WCHAR SnoopExcludeW[] = {'S','n','o','o','p','E','x','c','l','u','d','e',0}; static const WCHAR SnoopExcludeW[] = {'S','n','o','o','p','E','x','c','l','u','d','e',0};
RtlOpenCurrentUser( KEY_ALL_ACCESS, &root ); RtlOpenCurrentUser( KEY_READ, &root );
attr.Length = sizeof(attr); attr.Length = sizeof(attr);
attr.RootDirectory = root; attr.RootDirectory = root;
attr.ObjectName = &name; attr.ObjectName = &name;
...@@ -129,7 +129,7 @@ void RELAY16_InitDebugLists(void) ...@@ -129,7 +129,7 @@ void RELAY16_InitDebugLists(void)
RtlInitUnicodeString( &name, configW ); RtlInitUnicodeString( &name, configW );
/* @@ Wine registry key: HKCU\Software\Wine\Debug */ /* @@ Wine registry key: HKCU\Software\Wine\Debug */
if (NtOpenKey( &hkey, KEY_ALL_ACCESS, &attr )) hkey = 0; if (NtOpenKey( &hkey, KEY_READ, &attr )) hkey = 0;
NtClose( root ); NtClose( root );
if (!hkey) return; if (!hkey) return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment