mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
Partial fixed bug #79649 (Altering disable_functions from module init corrupts memory)
In module startup stage, we should not initiliaze EG(modified_ini_directives) as it use zend MM, the zend MM will be restart at the end of modules startup stage, by say "partial", because this issue still exists if altering ZEND_USER inis, we should add a zend_ini_deactive at the end of modules startup stage, but it brings some new cost, and I think no one would do things like that
This commit is contained in:
parent
3c12c41927
commit
a297c09da5
2
NEWS
2
NEWS
@ -3,6 +3,8 @@ PHP NEWS
|
||||
?? ??? 2020, PHP 7.4.8
|
||||
|
||||
- Core:
|
||||
. Fixed bug #79649 (Altering disable_functions from module init corrupts
|
||||
memory). (Laruence)
|
||||
. Fixed bug #79595 (zend_init_fpu() alters FPU precision). (cmb, Nikita)
|
||||
. Fixed bug #79650 (php-win.exe 100% cpu lockup). (cmb)
|
||||
. Fixed bug #79668 (get_defined_functions(true) may miss functions). (cmb,
|
||||
|
@ -341,15 +341,17 @@ ZEND_API int zend_alter_ini_entry_ex(zend_string *name, zend_string *new_value,
|
||||
}
|
||||
}
|
||||
|
||||
if (!EG(modified_ini_directives)) {
|
||||
ALLOC_HASHTABLE(EG(modified_ini_directives));
|
||||
zend_hash_init(EG(modified_ini_directives), 8, NULL, NULL, 0);
|
||||
}
|
||||
if (!modified) {
|
||||
ini_entry->orig_value = ini_entry->value;
|
||||
ini_entry->orig_modifiable = modifiable;
|
||||
ini_entry->modified = 1;
|
||||
zend_hash_add_ptr(EG(modified_ini_directives), ini_entry->name, ini_entry);
|
||||
if (ini_entry->modifiable != ZEND_INI_SYSTEM) {
|
||||
if (!EG(modified_ini_directives)) {
|
||||
ALLOC_HASHTABLE(EG(modified_ini_directives));
|
||||
zend_hash_init(EG(modified_ini_directives), 8, NULL, NULL, 0);
|
||||
}
|
||||
if (!modified) {
|
||||
ini_entry->orig_value = ini_entry->value;
|
||||
ini_entry->orig_modifiable = modifiable;
|
||||
ini_entry->modified = 1;
|
||||
zend_hash_add_ptr(EG(modified_ini_directives), ini_entry->name, ini_entry);
|
||||
}
|
||||
}
|
||||
|
||||
duplicate = zend_string_copy(new_value);
|
||||
|
Loading…
Reference in New Issue
Block a user