Skip to content

Commit 4f4d124

Browse files
committed
fix(registry): prioritize HKEY_CURRENT_USER over HKEY_LOCAL_MACHINE to prevent stale values
1 parent 35b3f01 commit 4f4d124

File tree

3 files changed

+14
-20
lines changed

3 files changed

+14
-20
lines changed

Core/Libraries/Source/WWVegas/WWDownload/registry.cpp

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -120,12 +120,12 @@ bool GetStringFromRegistry(std::string path, std::string key, std::string& val)
120120
#endif
121121

122122
fullPath.append(path);
123-
if (getStringFromRegistry(HKEY_LOCAL_MACHINE, fullPath.c_str(), key.c_str(), val))
123+
if (getStringFromRegistry(HKEY_CURRENT_USER, fullPath.c_str(), key.c_str(), val))
124124
{
125125
return true;
126126
}
127127

128-
return getStringFromRegistry(HKEY_CURRENT_USER, fullPath.c_str(), key.c_str(), val);
128+
return getStringFromRegistry(HKEY_LOCAL_MACHINE, fullPath.c_str(), key.c_str(), val);
129129
}
130130

131131
bool GetUnsignedIntFromRegistry(std::string path, std::string key, unsigned int& val)
@@ -137,12 +137,12 @@ bool GetUnsignedIntFromRegistry(std::string path, std::string key, unsigned int&
137137
#endif
138138

139139
fullPath.append(path);
140-
if (getUnsignedIntFromRegistry(HKEY_LOCAL_MACHINE, fullPath.c_str(), key.c_str(), val))
140+
if (getUnsignedIntFromRegistry(HKEY_CURRENT_USER, fullPath.c_str(), key.c_str(), val))
141141
{
142142
return true;
143143
}
144144

145-
return getUnsignedIntFromRegistry(HKEY_CURRENT_USER, fullPath.c_str(), key.c_str(), val);
145+
return getUnsignedIntFromRegistry(HKEY_LOCAL_MACHINE, fullPath.c_str(), key.c_str(), val);
146146
}
147147

148148
bool SetStringInRegistry( std::string path, std::string key, std::string val)
@@ -154,9 +154,6 @@ bool SetStringInRegistry( std::string path, std::string key, std::string val)
154154
#endif
155155
fullPath.append(path);
156156

157-
if (setStringInRegistry( HKEY_LOCAL_MACHINE, fullPath, key, val))
158-
return true;
159-
160157
return setStringInRegistry( HKEY_CURRENT_USER, fullPath, key, val );
161158
}
162159

@@ -169,9 +166,6 @@ bool SetUnsignedIntInRegistry( std::string path, std::string key, unsigned int v
169166
#endif
170167
fullPath.append(path);
171168

172-
if (setUnsignedIntInRegistry( HKEY_LOCAL_MACHINE, fullPath, key, val))
173-
return true;
174-
175169
return setUnsignedIntInRegistry( HKEY_CURRENT_USER, fullPath, key, val );
176170
}
177171

Generals/Code/GameEngine/Source/Common/System/registry.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,12 @@ Bool GetStringFromRegistry(AsciiString path, AsciiString key, AsciiString& val)
121121

122122
fullPath.concat(path);
123123
DEBUG_LOG(("GetStringFromRegistry - looking in %s for key %s", fullPath.str(), key.str()));
124-
if (getStringFromRegistry(HKEY_LOCAL_MACHINE, fullPath.str(), key.str(), val))
124+
if (getStringFromRegistry(HKEY_CURRENT_USER, fullPath.str(), key.str(), val))
125125
{
126126
return TRUE;
127127
}
128128

129-
return getStringFromRegistry(HKEY_CURRENT_USER, fullPath.str(), key.str(), val);
129+
return getStringFromRegistry(HKEY_LOCAL_MACHINE, fullPath.str(), key.str(), val);
130130
}
131131

132132
Bool GetUnsignedIntFromRegistry(AsciiString path, AsciiString key, UnsignedInt& val)
@@ -135,12 +135,12 @@ Bool GetUnsignedIntFromRegistry(AsciiString path, AsciiString key, UnsignedInt&
135135

136136
fullPath.concat(path);
137137
DEBUG_LOG(("GetUnsignedIntFromRegistry - looking in %s for key %s", fullPath.str(), key.str()));
138-
if (getUnsignedIntFromRegistry(HKEY_LOCAL_MACHINE, fullPath.str(), key.str(), val))
138+
if (getUnsignedIntFromRegistry(HKEY_CURRENT_USER, fullPath.str(), key.str(), val))
139139
{
140140
return TRUE;
141141
}
142142

143-
return getUnsignedIntFromRegistry(HKEY_CURRENT_USER, fullPath.str(), key.str(), val);
143+
return getUnsignedIntFromRegistry(HKEY_LOCAL_MACHINE, fullPath.str(), key.str(), val);
144144
}
145145

146146
AsciiString GetRegistryLanguage(void)

GeneralsMD/Code/GameEngine/Source/Common/System/registry.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,12 @@ Bool GetStringFromGeneralsRegistry(AsciiString path, AsciiString key, AsciiStrin
121121

122122
fullPath.concat(path);
123123
DEBUG_LOG(("GetStringFromRegistry - looking in %s for key %s", fullPath.str(), key.str()));
124-
if (getStringFromRegistry(HKEY_LOCAL_MACHINE, fullPath.str(), key.str(), val))
124+
if (getStringFromRegistry(HKEY_CURRENT_USER, fullPath.str(), key.str(), val))
125125
{
126126
return TRUE;
127127
}
128128

129-
return getStringFromRegistry(HKEY_CURRENT_USER, fullPath.str(), key.str(), val);
129+
return getStringFromRegistry(HKEY_LOCAL_MACHINE, fullPath.str(), key.str(), val);
130130
}
131131

132132
Bool GetStringFromRegistry(AsciiString path, AsciiString key, AsciiString& val)
@@ -135,12 +135,12 @@ Bool GetStringFromRegistry(AsciiString path, AsciiString key, AsciiString& val)
135135

136136
fullPath.concat(path);
137137
DEBUG_LOG(("GetStringFromRegistry - looking in %s for key %s", fullPath.str(), key.str()));
138-
if (getStringFromRegistry(HKEY_LOCAL_MACHINE, fullPath.str(), key.str(), val))
138+
if (getStringFromRegistry(HKEY_CURRENT_USER, fullPath.str(), key.str(), val))
139139
{
140140
return TRUE;
141141
}
142142

143-
return getStringFromRegistry(HKEY_CURRENT_USER, fullPath.str(), key.str(), val);
143+
return getStringFromRegistry(HKEY_LOCAL_MACHINE, fullPath.str(), key.str(), val);
144144
}
145145

146146
Bool GetUnsignedIntFromRegistry(AsciiString path, AsciiString key, UnsignedInt& val)
@@ -149,12 +149,12 @@ Bool GetUnsignedIntFromRegistry(AsciiString path, AsciiString key, UnsignedInt&
149149

150150
fullPath.concat(path);
151151
DEBUG_LOG(("GetUnsignedIntFromRegistry - looking in %s for key %s", fullPath.str(), key.str()));
152-
if (getUnsignedIntFromRegistry(HKEY_LOCAL_MACHINE, fullPath.str(), key.str(), val))
152+
if (getUnsignedIntFromRegistry(HKEY_CURRENT_USER, fullPath.str(), key.str(), val))
153153
{
154154
return TRUE;
155155
}
156156

157-
return getUnsignedIntFromRegistry(HKEY_CURRENT_USER, fullPath.str(), key.str(), val);
157+
return getUnsignedIntFromRegistry(HKEY_LOCAL_MACHINE, fullPath.str(), key.str(), val);
158158
}
159159

160160
AsciiString GetRegistryLanguage(void)

0 commit comments

Comments
 (0)