mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
MFH: - Fixed bug #34307 (OnUpdateStringUnempty INI options can be set empty)
This commit is contained in:
parent
248c30dad7
commit
64cfbf539f
4 changed files with 35 additions and 21 deletions
1
NEWS
1
NEWS
|
@ -19,6 +19,7 @@ PHP NEWS
|
|||
- Fixed failing queries (FALSE returned) with mysqli_query() on 64 bit systems.
|
||||
(Andrey)
|
||||
- Fixed bug #34310 (foreach($arr as $c->d => $x) crashes). (Dmitry)
|
||||
- Fixed bug #34307 (OnUpdateStringUnempty INI options can be set empty). (Jani)
|
||||
- Fixed bug #34306 (wddx_serialize_value() crashes with long array keys). (Jani)
|
||||
- Fixed bug #34302 (date('W') do not return leading zeros for week 1 to 9).
|
||||
(Derick)
|
||||
|
|
15
main/main.c
15
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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue