]> granicus.if.org Git - php/commitdiff
Fixed php_admin* bypass by ini_restore()
authorDmitry Stogov <dmitry@php.net>
Wed, 6 Sep 2006 08:54:44 +0000 (08:54 +0000)
committerDmitry Stogov <dmitry@php.net>
Wed, 6 Sep 2006 08:54:44 +0000 (08:54 +0000)
Zend/zend_ini.c

index 92bb40e12ef4c952f3233e43f057f634f8756bdc..1cade26d6a49bf16cb3873424f5d22049f38dd38 100644 (file)
@@ -274,7 +274,8 @@ ZEND_API int zend_restore_ini_entry(char *name, uint name_length, int stage)
        zend_ini_entry *ini_entry;
        TSRMLS_FETCH();
 
-       if (zend_hash_find(EG(ini_directives), name, name_length, (void **) &ini_entry)==FAILURE) {
+       if (zend_hash_find(EG(ini_directives), name, name_length, (void **) &ini_entry)==FAILURE ||
+           (stage == ZEND_INI_STAGE_RUNTIME && (ini_entry->modifiable & ZEND_INI_USER) == 0)) {
                return FAILURE;
        }