#50435 [Opn->Csd]: Fatal error thrown for removed ini directives isn't fatal
| From: | kalle@php.net | Date: | Mon, 14 Dec 2009 10:56:42 +0000 |
| Subject: | #50435 [Opn->Csd]: Fatal error thrown for removed ini directives isn't fatal | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-145714@lists.php.net to get a copy of this message | ||
ID: 50435
Updated by: kalle@php.net
Reported By: arpad@php.net
-Status: Open
+Status: Closed
Bug Type: Scripting Engine problem
Operating System: N/A
PHP Version: 6SVN-2009-12-10 (SVN)
-Assigned To:
+Assigned To: kalle
New Comment:
This bug has been fixed in SVN.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.
Previous Comments:
------------------------------------------------------------------------
[2009-12-14 10:55:07] svn@php.net
Automatic comment from SVN on behalf of kalle
Revision: http://svn.php.net/viewvc/?view=revision&revision=292126
Log: Change to E_CORE_ERROR as advertised (Fixes #50435) - Patch by
arpad@php.net
------------------------------------------------------------------------
[2009-12-10 03:27:52] arpad@php.net
Trivial patch correcting the grammatical error too:
Index: main/main.c
===================================================================
--- main/main.c (revision 291937)
+++ main/main.c (working copy)
@@ -2075,7 +2075,7 @@
while (*p) {
if (cfg_get_long((char*)*p, &val) == SUCCESS && val) {
- zend_error(E_ERROR, "Directive '%s' no longer exist in PHP 6 and
greater", *p);
+ zend_error(E_CORE_ERROR, "Directive '%s' no longer exists in PHP 6
and greater", *p);
}
++p;
}
------------------------------------------------------------------------
[2009-12-10 03:23:24] arpad@php.net
Description:
------------
The check for removed ini directives in php_module_startup
(main/main.c) was changed to use E_ERROR instead of E_WARNING:
http://svn.php.net/viewvc/php/php-src/trunk/main/main.c?r1=288037&r2=288038&
Since it is run before module_initialized is set to 1, php_error_cb
skips the bailout.
If it's supposed to be fatal then it should be E_CORE_ERROR, as
README.UPDATING_TO_PHP6 says.
Reproduce code:
---------------
php -d register_globals=1 -r 'echo "hi\n";'
Expected result:
----------------
PHP Fatal error: Directive 'register_globals' no longer exist in PHP 6
and greater in Unknown on line 0
Actual result:
--------------
PHP Fatal error: Directive 'register_globals' no longer exist in PHP 6
and greater in Unknown on line 0
hi
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=50435&edit=1