Bug #69832 [Asn->Csd]: Assertion failed in zend_compile_const_expr_magic_const
Edit report at https://bugs.php.net/bug.php?id=69832&edit=1
ID: 69832
Updated by: bwoebi@php.net
Reported by: bugs dot php dot net at majkl578 dot cz
Summary: Assertion failed in
zend_compile_const_expr_magic_const
-Status: Assigned
+Status: Closed
Type: Bug
Package: Reproducible crash
Operating System: Linux x86_64
PHP Version: 7.0Git-2015-06-15 (Git)
Assigned To: nikic
Block user comment: N
Private report: N
New Comment:
Automatic comment on behalf of bobwei9@hotmail.com
Revision: http://git.php.net/?p=php-src.git;a=commit;h=9db81340bab6e30b4b67126b500a042d61682c9d
Log: Fix bug #69832 (Assertion failure)
Previous Comments:
------------------------------------------------------------------------
[2015-06-15 05:08:16] laruence@php.net
seems simply remove the trait assertion fix it..
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 6164242..be89550 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -6737,10 +6737,7 @@ void zend_compile_const_expr_magic_const(zend_ast **ast_ptr) /* {{{ */
{
zend_ast *ast = *ast_ptr;
- /* Other cases already resolved by constant folding */
- ZEND_ASSERT(ast->attr == T_CLASS_C &&
- CG(active_class_entry) &&
- (CG(active_class_entry)->ce_flags & ZEND_ACC_TRAIT) != 0);
+ ZEND_ASSERT(ast->attr == T_CLASS_C && CG(active_class_entry));
{
zval const_zv;
------------------------------------------------------------------------
[2015-06-15 00:23:22] bugs dot php dot net at majkl578 dot cz
Description:
------------
PHP built from 6cb7b48846d129f088b50c4a8c4b00b7dc886f5c in DEBUG mode.
Test script:
---------------
<?php
class Test
{
public static $foo = [
self::A => 'foo',
self::B => [__CLASS__, 'foo'],
];
}
Expected result:
----------------
No crash.
Actual result:
--------------
Crash, assertion failed:
php: /build/php/php-src/Zend/zend_compile.c:6743: void zend_compile_const_expr_magic_const(zend_ast
**): Assertion `ast->attr == 373 && (compiler_globals.active_class_entry) &&
((compiler_globals.active_class_entry)->ce_flags & 0x80) != 0' failed.
Backtrace:
Program received signal SIGABRT, Aborted.
0x00007ffff0906107 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
#0 0x00007ffff0906107 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff09074e8 in __GI_abort () at abort.c:89
#2 0x00007ffff08ff226 in __assert_fail_base (fmt=0x7ffff0a35948 "%s%s%s:%u: %s%sAssertion
`%s' failed.\n%n",
assertion=assertion@entry=0x124ec2b "ast->attr == 373 &&
(compiler_globals.active_class_entry) && ((compiler_globals.active_class_entry)->ce_flags
& 0x80) != 0",
file=file@entry=0x124d4e9 "/build/php/php-src/Zend/zend_compile.c",
line=line@entry=6743, function=function@entry=0x124ed5b "void
zend_compile_const_expr_magic_const(zend_ast **)") at assert.c:92
#3 0x00007ffff08ff2d2 in __GI___assert_fail (assertion=0x124ec2b "ast->attr == 373
&& (compiler_globals.active_class_entry) &&
((compiler_globals.active_class_entry)->ce_flags & 0x80) != 0",
file=0x124d4e9 "/build/php/php-src/Zend/zend_compile.c", line=6743, function=0x124ed5b
"void zend_compile_const_expr_magic_const(zend_ast **)") at assert.c:101
#4 0x0000000000be02f3 in zend_compile_const_expr_magic_const (ast_ptr=0x7fffeb2781a8) at
Zend/zend_compile.c:6741
#5 0x0000000000be040c in zend_compile_const_expr (ast_ptr=0x7fffeb2781a8) at
Zend/zend_compile.c:6775
#6 0x0000000000c50379 in zend_ast_apply (ast=0x7fffeb2781a0, fn=0xbe0340
<zend_compile_const_expr>) at Zend/zend_ast.c:514
#7 0x0000000000be0421 in zend_compile_const_expr (ast_ptr=0x7fffeb2781c8) at
Zend/zend_compile.c:6778
#8 0x0000000000c50325 in zend_ast_apply (ast=0x7fffeb2781b8, fn=0xbe0340
<zend_compile_const_expr>) at Zend/zend_ast.c:509
#9 0x0000000000be0421 in zend_compile_const_expr (ast_ptr=0x7fffeb278220) at
Zend/zend_compile.c:6778
#10 0x0000000000c50379 in zend_ast_apply (ast=0x7fffeb278218, fn=0xbe0340
<zend_compile_const_expr>) at Zend/zend_ast.c:514
#11 0x0000000000be0421 in zend_compile_const_expr (ast_ptr=0x7fffeb278138) at
Zend/zend_compile.c:6778
#12 0x0000000000c50325 in zend_ast_apply (ast=0x7fffeb278120, fn=0xbe0340
<zend_compile_const_expr>) at Zend/zend_ast.c:509
#13 0x0000000000be0421 in zend_compile_const_expr (ast_ptr=0x7fffffff9d40) at
Zend/zend_compile.c:6778
#14 0x0000000000bd44ed in zend_const_expr_to_zval (result=0x7fffffff9d70, ast=0x7fffeb278120) at
Zend/zend_compile.c:6788
#15 0x0000000000bd99b2 in zend_compile_prop_decl (ast=0x7fffeb278248) at Zend/zend_compile.c:4762
#16 0x0000000000bd5671 in zend_compile_stmt (ast=0x7fffeb278248) at Zend/zend_compile.c:6899
#17 0x0000000000bd77a3 in zend_compile_stmt_list (ast=0x7fffeb278060) at Zend/zend_compile.c:4195
#18 0x0000000000bd5563 in zend_compile_stmt (ast=0x7fffeb278060) at Zend/zend_compile.c:6840
#19 0x0000000000bd3d23 in zend_compile_class_decl (ast=0x7fffeb278278) at Zend/zend_compile.c:5106
#20 0x0000000000bd569b in zend_compile_stmt (ast=0x7fffeb278278) at Zend/zend_compile.c:6908
#21 0x0000000000bdb807 in zend_compile_top_stmt (ast=0x7fffeb278278) at Zend/zend_compile.c:6818
#22 0x0000000000bdb7e9 in zend_compile_top_stmt (ast=0x7fffeb278018) at Zend/zend_compile.c:6813
#23 0x0000000000ba0992 in compile_file (file_handle=0x7fffffffdfa8, type=8) at
Zend/zend_language_scanner.l:607
#24 0x00000000008b4a12 in phar_compile_file (file_handle=0x7fffffffdfa8, type=8) at
ext/phar/phar.c:3310
#25 0x0000000000c04420 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at
Zend/zend.c:1383
#26 0x0000000000b5a052 in php_execute_script (primary_file=0x7fffffffdfa8) at main/main.c:2475
#27 0x0000000000cf6f3a in do_cli (argc=2, argv=0x15fad80) at sapi/cli/php_cli.c:967
#28 0x0000000000cf5e3a in main (argc=2, argv=0x15fad80) at sapi/cli/php_cli.c:1334
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=69832&edit=1
Thread (3 messages)