summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorfoobar <sniper@php.net>2005-09-01 14:44:15 +0000
committerfoobar <sniper@php.net>2005-09-01 14:44:15 +0000
commit64cfbf539f67eaa6ee84dff5a36e93c568b09eab (patch)
tree66c4de5979b9512732b265e05a5e839c5bd3d5ba /main
parent248c30dad75d8ab3700eade2f9e18ff408faba26 (diff)
downloadphp-git-64cfbf539f67eaa6ee84dff5a36e93c568b09eab.tar.gz
MFH: - Fixed bug #34307 (OnUpdateStringUnempty INI options can be set empty)
Diffstat (limited to 'main')
-rw-r--r--main/main.c15
-rw-r--r--main/php_ini.c37
-rw-r--r--main/php_ini.h3
3 files changed, 34 insertions, 21 deletions
diff --git a/main/main.c b/main/main.c
index cae891c5f8..6d275d1599 100644
--- a/main/main.c
+++ b/main/main.c
@@ -1415,17 +1415,24 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod
le_index_ptr = zend_register_list_destructors_ex(NULL, NULL, "index pointer", 0);
+ /* Initialize configuration_hash */
+ if (php_init_config_hash() == FAILURE) {
+ return FAILURE;
+ }
+
+ /* Register PHP core ini entries */
+ REGISTER_INI_ENTRIES();
+
+ /* Register Zend ini entries */
+ zend_register_standard_ini_entries(TSRMLS_C);
/* this will read in php.ini, set up the configuration parameters,
load zend extensions and register php function extensions
to be loaded later */
- if (php_init_config() == FAILURE) {
+ if (php_init_config(TSRMLS_C) == FAILURE) {
return FAILURE;
}
- REGISTER_INI_ENTRIES();
- zend_register_standard_ini_entries(TSRMLS_C);
-
/* Disable realpath cache if safe_mode or open_basedir are set */
if (PG(safe_mode) || (PG(open_basedir) && *PG(open_basedir))) {
CWDG(realpath_cache_size_limit) = 0;
diff --git a/main/php_ini.c b/main/php_ini.c
index 3745cb4dc0..a86dd8ac52 100644
--- a/main/php_ini.c
+++ b/main/php_ini.c
@@ -163,16 +163,6 @@ PHPAPI void display_ini_entries(zend_module_entry *module)
# endif
#endif
-/* {{{ pvalue_config_destructor
- */
-static void pvalue_config_destructor(zval *pvalue)
-{
- if (Z_TYPE_P(pvalue) == IS_STRING) {
- free(Z_STRVAL_P(pvalue));
- }
-}
-/* }}} */
-
/* {{{ php_config_ini_parser_cb
*/
static void php_config_ini_parser_cb(zval *arg1, zval *arg2, int callback_type, void *arg)
@@ -254,9 +244,29 @@ static void php_load_zend_extension_cb(void *arg TSRMLS_DC)
}
/* }}} */
+/* {{{ pvalue_config_destructor
+ */
+static void pvalue_config_destructor(zval *pvalue)
+{
+ if (Z_TYPE_P(pvalue) == IS_STRING) {
+ free(Z_STRVAL_P(pvalue));
+ }
+}
+/* }}} */
+
+/* {{{ php_init_config_hash
+ */
+int php_init_config_hash(void)
+{
+ if (zend_hash_init(&configuration_hash, 0, NULL, (dtor_func_t) pvalue_config_destructor, 1) == FAILURE) {
+ return FAILURE;
+ }
+}
+/* }}} */
+
/* {{{ php_init_config
*/
-int php_init_config()
+int php_init_config(TSRMLS_D)
{
char *php_ini_search_path = NULL;
int safe_mode_state;
@@ -269,11 +279,6 @@ int php_init_config()
zend_llist scanned_ini_list;
int l, total_l=0;
zend_llist_element *element;
- TSRMLS_FETCH();
-
- if (zend_hash_init(&configuration_hash, 0, NULL, (dtor_func_t) pvalue_config_destructor, 1) == FAILURE) {
- return FAILURE;
- }
if (sapi_module.ini_defaults) {
sapi_module.ini_defaults(&configuration_hash);
diff --git a/main/php_ini.h b/main/php_ini.h
index e8630a8689..1b3c7a0f5b 100644
--- a/main/php_ini.h
+++ b/main/php_ini.h
@@ -24,7 +24,8 @@
#include "zend_ini.h"
BEGIN_EXTERN_C()
-int php_init_config();
+int php_init_config_hash(void);
+int php_init_config(TSRMLS_D);
int php_shutdown_config(void);
void php_ini_register_extensions(TSRMLS_D);
zval *cfg_get_entry(char *name, uint name_length);