Browse Source

Fix segfault when env vars are missing.

experimental/pre_new_hash_func
David Hedbor 26 years ago
parent
commit
6b0f88e828
  1. 68
      sapi/caudium/caudium.c

68
sapi/caudium/caudium.c

@ -474,50 +474,56 @@ static zend_module_entry php_caudium_module = {
};
static void sapi_caudium_register_variables(zval *track_vars_array ELS_DC SLS_DC PLS_DC)
INLINE static void low_sapi_caudium_register_variables(zval *track_vars_array ELS_DC SLS_DC PLS_DC)
{
char *tmp;
php_register_variable("PHP_SELF", SG(request_info).request_uri,
track_vars_array ELS_CC PLS_CC);
php_register_variable("GATEWAY_INTERFACE", "CGI/1.1",
track_vars_array ELS_CC PLS_CC);
php_register_variable("REQUEST_METHOD", (char *) SG(request_info).request_method,
php_register_variable("REQUEST_METHOD",
(char *) SG(request_info).request_method,
track_vars_array ELS_CC PLS_CC);
php_register_variable("REQUEST_URI", SG(request_info).request_uri,
track_vars_array ELS_CC PLS_CC);
php_register_variable("PATH_TRANSLATED", SG(request_info).path_translated,
track_vars_array ELS_CC PLS_CC);
php_register_variable("SERVER_NAME", lookup_string_header("SERVER_NAME", NULL),
track_vars_array ELS_CC PLS_CC);
php_register_variable("SERVER_PORT", lookup_string_header("SERVER_PORT", NULL),
track_vars_array ELS_CC PLS_CC);
php_register_variable("SERVER_PROTOCOL", lookup_string_header("SERVER_PROTOCOL", NULL),
track_vars_array ELS_CC PLS_CC);
php_register_variable("SCRIPT_NAME", lookup_string_header("SCRIPT_NAME", NULL),
track_vars_array ELS_CC PLS_CC);
php_register_variable("SCRIPT_FILENAME", lookup_string_header("SCRIPT_FILENAME", NULL),
track_vars_array ELS_CC PLS_CC);
php_register_variable("REMOTE_ADDR", lookup_string_header("REMOTE_ADDR", NULL),
track_vars_array ELS_CC PLS_CC);
php_register_variable("REMOTE_PORT", lookup_string_header("REMOTE_PORT", NULL),
track_vars_array ELS_CC PLS_CC);
php_register_variable("DOCUMENT_ROOT", lookup_string_header("DOCUMENT_ROOT", NULL),
track_vars_array ELS_CC PLS_CC);
php_register_variable("HTTP_CONNECTION", lookup_string_header("HTTP_CONNECTION", NULL),
track_vars_array ELS_CC PLS_CC);
php_register_variable("HTTP_USER_AGENT", lookup_string_header("HTTP_USER_AGENT", NULL),
track_vars_array ELS_CC PLS_CC);
php_register_variable("DOCUMENT_ROOT", lookup_string_header("DOCUMENT_ROOT", NULL),
track_vars_array ELS_CC PLS_CC);
php_register_variable("QUERY_STRING", lookup_string_header("QUERY_STRING", ""),
track_vars_array ELS_CC PLS_CC);
php_register_variable("REMOTE_USER", lookup_string_header("REMOTE_USER", NULL),
track_vars_array ELS_CC PLS_CC);
php_register_variable("REMOTE_PASSWORD", lookup_string_header("REMOTE_PASSWORD", NULL),
track_vars_array ELS_CC PLS_CC);
if( (tmp = lookup_string_header("SERVER_NAME", NULL)) != NULL)
php_register_variable("SERVER_NAME", tmp, track_vars_array ELS_CC PLS_CC);
if( (tmp = lookup_string_header("SERVER_PORT", NULL)) != NULL)
php_register_variable("SERVER_PORT", tmp, track_vars_array ELS_CC PLS_CC);
if( (tmp = lookup_string_header("SERVER_PROTOCOL", NULL)) != NULL)
php_register_variable("SERVER_PROTOCOL", tmp, track_vars_array ELS_CC PLS_CC);
if( (tmp = lookup_string_header("SCRIPT_NAME", NULL)) != NULL)
php_register_variable("SCRIPT_NAME", tmp, track_vars_array ELS_CC PLS_CC);
if( (tmp = lookup_string_header("SCRIPT_FILENAME", NULL)) != NULL)
php_register_variable("SCRIPT_FILENAME", tmp, track_vars_array ELS_CC PLS_CC);
if( (tmp = lookup_string_header("REMOTE_ADDR", NULL)) != NULL)
php_register_variable("REMOTE_ADDR", tmp, track_vars_array ELS_CC PLS_CC);
if( (tmp = lookup_string_header("REMOTE_PORT", NULL)) != NULL)
php_register_variable("REMOTE_PORT", tmp, track_vars_array ELS_CC PLS_CC);
if( (tmp = lookup_string_header("DOCUMENT_ROOT", NULL)) != NULL)
php_register_variable("DOCUMENT_ROOT", tmp, track_vars_array ELS_CC PLS_CC);
if( (tmp = lookup_string_header("HTTP_CONNECTION", NULL)) != NULL)
php_register_variable("HTTP_CONNECTION", tmp, track_vars_array ELS_CC PLS_CC);
if( (tmp = lookup_string_header("HTTP_USER_AGENT", NULL)) != NULL)
php_register_variable("HTTP_USER_AGENT", tmp, track_vars_array ELS_CC PLS_CC);
if( (tmp = lookup_string_header("DOCUMENT_ROOT", NULL)) != NULL)
php_register_variable("DOCUMENT_ROOT", tmp, track_vars_array ELS_CC PLS_CC);
if( (tmp = lookup_string_header("QUERY_STRING", "")) != NULL)
php_register_variable("QUERY_STRING", tmp, track_vars_array ELS_CC PLS_CC);
if( (tmp = lookup_string_header("REMOTE_USER", NULL)) != NULL)
php_register_variable("REMOTE_USER", tmp, track_vars_array ELS_CC PLS_CC);
if( (tmp = lookup_string_header("REMOTE_PASSWORD", NULL)) != NULL)
php_register_variable("REMOTE_PASSWORD", tmp, track_vars_array ELS_CC PLS_CC);
}
static void sapi_caudium_register_variables(zval *track_vars_array ELS_DC SLS_DC PLS_DC)
{
THREAD_SAFE_RUN(low_sapi_caudium_register_variables(track_vars_array ELS_CC SLS_CC PLS_CC), "register_variables");
}
/* this structure is static (as in "it does not change") */
static sapi_module_struct caudium_sapi_module = {

Loading…
Cancel
Save