Skip to content
Snippets Groups Projects
Commit 04d63555 authored by Zebediah Figura's avatar Zebediah Figura Committed by Michael Stefaniuc
Browse files

ntdll: Avoid leaking the previous environment in RtlSetCurrentEnvironment().


Signed-off-by: default avatarZebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard's avatarAlexandre Julliard <julliard@winehq.org>
(cherry picked from commit e012bd58)
Signed-off-by: default avatarMichael Stefaniuc <mstefani@winehq.org>
parent 8ddf9bd7
No related branches found
No related tags found
No related merge requests found
......@@ -973,14 +973,21 @@ NTSTATUS WINAPI RtlQueryEnvironmentVariable_U(PWSTR env,
*/
void WINAPI RtlSetCurrentEnvironment(PWSTR new_env, PWSTR* old_env)
{
WCHAR *prev;
TRACE("(%p %p)\n", new_env, old_env);
RtlAcquirePebLock();
if (old_env) *old_env = NtCurrentTeb()->Peb->ProcessParameters->Environment;
prev = NtCurrentTeb()->Peb->ProcessParameters->Environment;
NtCurrentTeb()->Peb->ProcessParameters->Environment = new_env;
RtlReleasePebLock();
if (old_env)
*old_env = prev;
else
RtlDestroyEnvironment( prev );
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment