- Acquire the PEB lock before reading Peb->ProcessParameters->Environment in RtlQueryEnvironmentVariable_U. Patch by Mark Jansen.
CORE-10381
svn path=/trunk/; revision=69939
{
PPEB Peb = RtlGetCurrentPeb();
if (Peb) {
{
PPEB Peb = RtlGetCurrentPeb();
if (Peb) {
Environment = Peb->ProcessParameters->Environment;
SysEnvUsed = TRUE;
}
Environment = Peb->ProcessParameters->Environment;
SysEnvUsed = TRUE;
}
if (Environment == NULL)
{
if (Environment == NULL)
{
+ if (SysEnvUsed)
+ RtlReleasePebLock();
return(STATUS_VARIABLE_NOT_FOUND);
}
Value->Length = 0;
return(STATUS_VARIABLE_NOT_FOUND);
}
Value->Length = 0;
- if (SysEnvUsed)
- RtlAcquirePebLock();
wcs = Environment;
DPRINT("Starting search at :%p\n", wcs);
wcs = Environment;
DPRINT("Starting search at :%p\n", wcs);