]> granicus.if.org Git - php/commitdiff
Fixed fcgi_putenv() semantic with NULL value
authorDmitry Stogov <dmitry@php.net>
Mon, 19 Feb 2007 13:21:14 +0000 (13:21 +0000)
committerDmitry Stogov <dmitry@php.net>
Mon, 19 Feb 2007 13:21:14 +0000 (13:21 +0000)
sapi/cgi/fastcgi.c

index 06885bc24454cc04192ada39617d8b44a386d248..639d348a7d12fd2e6b945f413ae9a0c7bdd763a1 100644 (file)
@@ -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;