]> granicus.if.org Git - php/commitdiff
Fixed segfault
authorXinchen Hui <laruence@php.net>
Wed, 4 Mar 2015 09:17:48 +0000 (17:17 +0800)
committerXinchen Hui <laruence@php.net>
Wed, 4 Mar 2015 09:17:48 +0000 (17:17 +0800)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 7936af95b21206131c422a819f355d7ad120aa61..d0d6079b39567ef392d5b42e41d1fbeee37aa821 100644 (file)
@@ -1907,7 +1907,7 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
                zend_vm_stack_free_extra_args(execute_data);
                old_execute_data = execute_data;
                execute_data = EG(current_execute_data) = EX(prev_execute_data);
-               if (UNEXPECTED((old_execute_data->func->op_array.fn_flags & ZEND_ACC_CLOSURE) != 0) && EX(func)->op_array.prototype) {
+               if (UNEXPECTED((old_execute_data->func->op_array.fn_flags & ZEND_ACC_CLOSURE) != 0) && old_execute_data->func->op_array.prototype) {
                        OBJ_RELEASE((zend_object*)old_execute_data->func->op_array.prototype);
                }
                object = Z_OBJ(old_execute_data->This);
index a850098865bd2f186e1127f1335ed72e5e9bbe02..85ed9a50b5c3c213907caf08c5dbaa0ba449cd4b 100644 (file)
@@ -396,7 +396,7 @@ static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
                zend_vm_stack_free_extra_args(execute_data);
                old_execute_data = execute_data;
                execute_data = EG(current_execute_data) = EX(prev_execute_data);
-               if (UNEXPECTED((old_execute_data->func->op_array.fn_flags & ZEND_ACC_CLOSURE) != 0) && EX(func)->op_array.prototype) {
+               if (UNEXPECTED((old_execute_data->func->op_array.fn_flags & ZEND_ACC_CLOSURE) != 0) && old_execute_data->func->op_array.prototype) {
                        OBJ_RELEASE((zend_object*)old_execute_data->func->op_array.prototype);
                }
                object = Z_OBJ(old_execute_data->This);