]> granicus.if.org Git - php/commitdiff
Use Zend MM heap for non-persistent ini entry values.
authorDmitry Stogov <dmitry@zend.com>
Wed, 8 Nov 2017 09:01:59 +0000 (12:01 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 8 Nov 2017 09:01:59 +0000 (12:01 +0300)
Zend/zend_ini.c
Zend/zend_ini.h

index 4c1f52d4af784c4b65ea12fa4254ac12754848a9..bf36c1f7b55fa9fe11f659bedd8f056496594668 100644 (file)
@@ -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;
index 620b3013c41865ee462a375245f356e1ac65f060..8f91ef0d150a0e0cd437240fa38c8db61ab65dc6 100644 (file)
@@ -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()