summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2007-02-19 13:21:14 +0000
committerDmitry Stogov <dmitry@php.net>2007-02-19 13:21:14 +0000
commit7c776110570d1903e972f76fc16e67a8dee7e35b (patch)
tree9b762c5e1fa90a71719cb6ef55720c95038e87e0
parent772e35e99a6646b7520e442047e33f699cdda0dc (diff)
downloadphp-git-7c776110570d1903e972f76fc16e67a8dee7e35b.tar.gz
Fixed fcgi_putenv() semantic with NULL value
-rw-r--r--sapi/cgi/fastcgi.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/sapi/cgi/fastcgi.c b/sapi/cgi/fastcgi.c
index 06885bc244..639d348a7d 100644
--- a/sapi/cgi/fastcgi.c
+++ b/sapi/cgi/fastcgi.c
@@ -975,14 +975,15 @@ char* fcgi_getenv(fcgi_request *req, const char* var, int var_len)
char* fcgi_putenv(fcgi_request *req, char* var, int var_len, char* val)
{
if (var && req) {
- char **ret;
-
if (val == NULL) {
- val = "";
- }
- val = strdup(val);
- if (zend_hash_update(&req->env, var, var_len+1, &val, sizeof(char*), (void**)&ret) == SUCCESS) {
- return *ret;
+ zend_hash_del(&req->env, var, var_len+1);
+ } else {
+ char **ret;
+
+ val = strdup(val);
+ if (zend_hash_update(&req->env, var, var_len+1, &val, sizeof(char*), (void**)&ret) == SUCCESS) {
+ return *ret;
+ }
}
}
return NULL;