File tree Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ OSS-Fuzz #434346548: Failed assertion with throwing __toString in binary const expr
3
+ --FILE--
4
+ <?php
5
+
6
+ class Foo {
7
+ function __toString () {}
8
+ }
9
+
10
+ function test ($ y = new Foo () < "" ) {
11
+ var_dump ();
12
+ }
13
+
14
+ try {
15
+ test ();
16
+ } catch (Error $ e ) {
17
+ echo $ e ->getMessage (), "\n" ;
18
+ }
19
+
20
+ ?>
21
+ --EXPECT--
22
+ Foo::__toString(): Return value must be of type string, none returned
Original file line number Diff line number Diff line change @@ -610,9 +610,10 @@ ZEND_API zend_result ZEND_FASTCALL zend_ast_evaluate_inner(
610
610
ret = FAILURE ;
611
611
} else {
612
612
binary_op_type op = get_binary_op (ast -> attr );
613
- ret = op (result , & op1 , & op2 );
613
+ op (result , & op1 , & op2 );
614
614
zval_ptr_dtor_nogc (& op1 );
615
615
zval_ptr_dtor_nogc (& op2 );
616
+ ret = EG (exception ) ? FAILURE : SUCCESS ;
616
617
}
617
618
break ;
618
619
case ZEND_AST_GREATER :
You can’t perform that action at this time.
0 commit comments