summaryrefslogtreecommitdiff
path: root/main/fastcgi.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/fastcgi.c')
-rw-r--r--main/fastcgi.c14
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)