constant() aborts execution when fail to check undefined constant
| Bug #51791 | constant() aborts execution when fail to check undefined constant | ||||
|---|---|---|---|---|---|
| Submitted: | 2010-05-11 12:12 UTC | Modified: | 2010-05-17 13:05 UTC | ||
| From: | iliavlad at mail dot ru | Assigned: | felipe (profile) | ||
| Status: | Closed | Package: | Scripting Engine problem | ||
| PHP Version: | 5.3.2 | OS: | Windows, Linux | ||
| Private report: | No | CVE-ID: | None | ||
[2010-05-11 12:12 UTC] iliavlad at mail dot ru
Description:
------------
constant() failed to check undefined constant and php interpreter stoped, but constant() should return NULL and php interpreter should continue to work.
Test script:
---------------
class A
{
const B = 1;
}
var_dump(constant('A::B1'));
echo 5;
Expected result:
----------------
Warning: constant(): Couldn't find constant A::B1
NULL
5
Actual result:
--------------
>php -v
PHP 5.3.2 (cli) (built: Mar 3 2010 19:40:13)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
>php -r "class A { const B = 1;} var_dump(@constant('A::B1')); echo 5;"
>php -r "class A { const B = 1;} var_dump(constant('A::B1')); echo 5;"
Fatal error: Undefined class constant 'A::B1' in Command line code on line 1
Call Stack:
0.0003 317608 1. {main}() Command line code:0
0.0003 317688 2. constant() Command line code:1
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2010-05-12 08:16 UTC] mike@php.net
-Status: Open +Status: Bogus
[2010-05-13 00:09 UTC] iliavlad at mail dot ru
[2010-05-13 03:16 UTC] bjori@php.net
-Status: Open +Status: Verified -Package: Reproducible crash +Package: Scripting Engine problem
[2010-05-13 04:12 UTC] felipe@php.net
-Summary: constant() failed to check undefined constant and php interpreter stoped +Summary: constant() aborts execution when fail to check undefined constant
[2010-05-13 04:13 UTC] felipe@php.net
-Status: Verified +Status: Closed -Assigned To: +Assigned To: felipe
[2010-05-13 04:13 UTC] felipe@php.net
[2010-05-17 08:12 UTC] mike@php.net
[2010-05-17 13:04 UTC] felipe@php.net
constant('not::exists') was issuing an E_FATAL.