From: Dmitry Stogov Date: Wed, 8 Nov 2017 09:01:59 +0000 (+0300) Subject: Use Zend MM heap for non-persistent ini entry values. X-Git-Tag: php-7.3.0alpha1~1068 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9731a22eba8d803d83b30ce9fd4656b52bd1287e;p=php Use Zend MM heap for non-persistent ini entry values. --- diff --git a/Zend/zend_ini.c b/Zend/zend_ini.c index 4c1f52d4af..bf36c1f7b5 100644 --- a/Zend/zend_ini.c +++ b/Zend/zend_ini.c @@ -308,7 +308,7 @@ ZEND_API int zend_alter_ini_entry_chars(zend_string *name, const char *value, si int ret; zend_string *new_value; - new_value = zend_string_init(value, value_length, stage != ZEND_INI_STAGE_RUNTIME); + new_value = zend_string_init(value, value_length, !(stage & ZEND_INI_STAGE_IN_REQUEST)); ret = zend_alter_ini_entry_ex(name, new_value, modify_type, stage, 0); zend_string_release(new_value); return ret; @@ -320,7 +320,7 @@ ZEND_API int zend_alter_ini_entry_chars_ex(zend_string *name, const char *value, int ret; zend_string *new_value; - new_value = zend_string_init(value, value_length, stage != ZEND_INI_STAGE_RUNTIME); + new_value = zend_string_init(value, value_length, !(stage & ZEND_INI_STAGE_IN_REQUEST)); ret = zend_alter_ini_entry_ex(name, new_value, modify_type, stage, force_change); zend_string_release(new_value); return ret; diff --git a/Zend/zend_ini.h b/Zend/zend_ini.h index 620b3013c4..8f91ef0d15 100644 --- a/Zend/zend_ini.h +++ b/Zend/zend_ini.h @@ -175,6 +175,8 @@ END_EXTERN_C() #define ZEND_INI_STAGE_RUNTIME (1<<4) #define ZEND_INI_STAGE_HTACCESS (1<<5) +#define ZEND_INI_STAGE_IN_REQUEST (ZEND_INI_STAGE_ACTIVATE|ZEND_INI_STAGE_DEACTIVATE|ZEND_INI_STAGE_RUNTIME|ZEND_INI_STAGE_HTACCESS) + /* INI parsing engine */ typedef void (*zend_ini_parser_cb_t)(zval *arg1, zval *arg2, zval *arg3, int callback_type, void *arg); BEGIN_EXTERN_C()