diff options
Diffstat (limited to 'main/fastcgi.c')
| -rw-r--r-- | main/fastcgi.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/main/fastcgi.c b/main/fastcgi.c index 3181661877..a255baedc7 100644 --- a/main/fastcgi.c +++ b/main/fastcgi.c @@ -12,12 +12,10 @@ | obtain it through the world-wide-web, please send a note to | | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ - | Authors: Dmitry Stogov <dmitry@zend.com> | + | Authors: Dmitry Stogov <dmitry@php.net> | +----------------------------------------------------------------------+ */ -/* $Id$ */ - #include "php.h" #include "php_network.h" @@ -739,9 +737,9 @@ int fcgi_listen(const char *path, int backlog) return listen_socket; #else - int path_len = strlen(path); + size_t path_len = strlen(path); - if (path_len >= (int)sizeof(sa.sa_unix.sun_path)) { + if (path_len >= sizeof(sa.sa_unix.sun_path)) { fcgi_log(FCGI_ERROR, "Listening socket's path name is too long.\n"); return -1; } @@ -1734,8 +1732,12 @@ void fcgi_impersonate(void) void fcgi_set_mgmt_var(const char * name, size_t name_len, const char * value, size_t value_len) { zval zvalue; + zend_string *key = zend_string_init(name, name_len, 1); ZVAL_NEW_STR(&zvalue, zend_string_init(value, value_len, 1)); - zend_hash_str_add(&fcgi_mgmt_vars, name, name_len, &zvalue); + GC_MAKE_PERSISTENT_LOCAL(key); + GC_MAKE_PERSISTENT_LOCAL(Z_STR(zvalue)); + zend_hash_add(&fcgi_mgmt_vars, key, &zvalue); + zend_string_release_ex(key, 1); } void fcgi_free_mgmt_var_cb(zval *zv) |
