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");
while (*ptr++);
}
_environ[i] = NULL;
+ if (__initenv == NULL)
+ {
+ __initenv = _environ;
+ }
return 0;
}