summaryrefslogtreecommitdiff
path: root/ext/standard/basic_functions.c
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2007-02-21 03:03:37 +0000
committerStanislav Malyshev <stas@php.net>2007-02-21 03:03:37 +0000
commit462d545a638f9e7d8d732a3d6a65926beefd59f4 (patch)
treebe03a0921f8b0d7eab401883c1a51aad0e3aeccb /ext/standard/basic_functions.c
parent31a325823ae25684eccd11ca2c05da0965ab44fa (diff)
downloadphp-git-462d545a638f9e7d8d732a3d6a65926beefd59f4.tar.gz
fix putenv - if there was no previous, remove variable from environ
Diffstat (limited to 'ext/standard/basic_functions.c')
-rw-r--r--ext/standard/basic_functions.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 0a0009d133..8d6f45005a 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -3851,6 +3851,10 @@ static void php_putenv_destructor(putenv_entry *pe)
# if HAVE_UNSETENV
unsetenv(pe->key);
# elif defined(PHP_WIN32)
+ char *del_string = emalloc(pe->key_len+2);
+ snprintf(del_string, pe->key_len+2, "%s=", pe->key);
+ putenv(del_string);
+ efree(del_string);
SetEnvironmentVariable(pe->key, NULL);
# else
char **env;