X-Git-Url: http://git.jankratochvil.net/?p=reactos.git;a=blobdiff_plain;f=lib%2Fmsvcrt%2Fmisc%2Fenviron.c;fp=lib%2Fmsvcrt%2Fmisc%2Fenviron.c;h=df0fef9c0b96de5d46e23dbff39204c87fe5a830;hp=7dc8d437364a899b9ec207743be14570db5d3f70;hb=7c0db166f81fbe8c8b913d7f26048e337d383605;hpb=e3ed2d773259cc445c7ff8181ebd934931365328 diff --git a/lib/msvcrt/misc/environ.c b/lib/msvcrt/misc/environ.c index 7dc8d43..df0fef9 100644 --- a/lib/msvcrt/misc/environ.c +++ b/lib/msvcrt/misc/environ.c @@ -44,9 +44,13 @@ int BlockEnvToEnviron(void) if (_environ) { FreeEnvironmentStringsA(_environ[0]); - free(_environ); - _environ = NULL; + if (__initenv == _environ) { + __initenv[0] == NULL; + } else { + free(_environ); + } } + _environ = NULL; ptr2 = ptr = (char*)GetEnvironmentStringsA(); if (ptr == NULL) { DPRINT("GetEnvironmentStringsA() returnd NULL\n"); @@ -67,6 +71,10 @@ int BlockEnvToEnviron(void) while (*ptr++); } _environ[i] = NULL; + if (__initenv == NULL) + { + __initenv = _environ; + } return 0; }