- Fixed bug #34307 (OnUpdateStringUnempty INI options can be set as empty)

This commit is contained in:
foobar 2005-09-01 14:42:54 +00:00
parent fbd6ce4db5
commit ec0b4f91f4
3 changed files with 34 additions and 21 deletions

View File

@ -1535,17 +1535,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);
orig_unicode = UG(unicode);
UG(unicode) = 0;

View File

@ -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);

View File

@ -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);