|
|
|
@ -3820,9 +3820,7 @@ static void php_putenv_destructor(putenv_entry *pe) /* {{{ */ |
|
|
|
SetEnvironmentVariable(pe->key, "bugbug"); |
|
|
|
#endif |
|
|
|
putenv(pe->previous_value); |
|
|
|
# if defined(PHP_WIN32) |
|
|
|
efree(pe->previous_value); |
|
|
|
# endif |
|
|
|
} else { |
|
|
|
# if HAVE_UNSETENV |
|
|
|
unsetenv(pe->key); |
|
|
|
@ -4427,12 +4425,8 @@ PHP_FUNCTION(putenv) |
|
|
|
pe.previous_value = NULL; |
|
|
|
for (env = environ; env != NULL && *env != NULL; env++) { |
|
|
|
if (!strncmp(*env, pe.key, pe.key_len) && (*env)[pe.key_len] == '=') { /* found it */ |
|
|
|
#if defined(PHP_WIN32) |
|
|
|
/* must copy previous value because MSVCRT's putenv can free the string without notice */ |
|
|
|
/* must copy previous value because putenv can free the string without notice */ |
|
|
|
pe.previous_value = estrdup(*env); |
|
|
|
#else |
|
|
|
pe.previous_value = *env; |
|
|
|
#endif |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|