]> granicus.if.org Git - php/commitdiff
Initialize retval in INCLUDE_OR_EVAL
authorNikita Popov <nikic@php.net>
Sat, 15 Apr 2017 10:04:56 +0000 (12:04 +0200)
committerNikita Popov <nikic@php.net>
Sat, 15 Apr 2017 10:11:30 +0000 (12:11 +0200)
In case the eval'd code throws.

Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index d486d1514ee5de75a139a27aab86f9d80a0fad45..6823d61c2695cd32f5ba078b2d6ef2134c61d20a 100644 (file)
@@ -5257,6 +5257,7 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMPVAR|CV, ANY, EVAL)
 
                if (RETURN_VALUE_USED(opline)) {
                        return_value = EX_VAR(opline->result.var);
+                       ZVAL_NULL(return_value);
                }
 
                new_op_array->scope = EX(func)->op_array.scope;
index 7136aa8790851e3c393b1b07056989072e6f743e..1e888d7b6a94362816044f0af7163e0a9b30401c 100644 (file)
@@ -3449,6 +3449,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CONST_HAN
 
                if (RETURN_VALUE_USED(opline)) {
                        return_value = EX_VAR(opline->result.var);
+                       ZVAL_NULL(return_value);
                }
 
                new_op_array->scope = EX(func)->op_array.scope;
@@ -33629,6 +33630,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_CV_HANDLE
 
                if (RETURN_VALUE_USED(opline)) {
                        return_value = EX_VAR(opline->result.var);
+                       ZVAL_NULL(return_value);
                }
 
                new_op_array->scope = EX(func)->op_array.scope;
@@ -48262,6 +48264,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_TMPVAR_HA
 
                if (RETURN_VALUE_USED(opline)) {
                        return_value = EX_VAR(opline->result.var);
+                       ZVAL_NULL(return_value);
                }
 
                new_op_array->scope = EX(func)->op_array.scope;