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

index f5dc5fe8453522df93bd589c6bb23909e15a30dc..d3a9c5ed766711cde04db739e4e429335d9851c3 100644 (file)
@@ -275,7 +275,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;
        }