From 4b10620024c62d5967c900b92a263e64f499fa7e Mon Sep 17 00:00:00 2001 From: Arnaud Le Blanc Date: Sat, 30 May 2009 16:30:39 +0000 Subject: [PATCH] Fix aliasing issue (fixes #48409 , #48428 , #48228) --- Zend/zend_vm_def.h | 7 +++++-- Zend/zend_vm_execute.h | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 48906fa0d1..7f5e364e2d 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -2362,7 +2362,9 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY) EG(called_scope) = EX(called_scope); } - zend_ptr_stack_3_pop(&EG(arg_types_stack), (void*)&EX(called_scope), (void**)&EX(current_object), (void**)&EX(fbc)); + EX(called_scope) = zend_ptr_stack_pop(&EG(arg_types_stack)); + EX(current_object) = zend_ptr_stack_pop(&EG(arg_types_stack)); + EX(fbc) = zend_ptr_stack_pop(&EG(arg_types_stack)); EX(function_state).arguments = zend_vm_stack_push_args(opline->extended_value TSRMLS_CC); if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION) { @@ -4488,7 +4490,8 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY) zval_ptr_dtor(&EX(object)); } EX(called_scope) = DECODE_CTOR(EX(called_scope)); - zend_ptr_stack_2_pop(&EG(arg_types_stack), (void**)&EX(object), (void**)&EX(fbc)); + EX(object) = zend_ptr_stack_pop(&EG(arg_types_stack)); + EX(fbc) = zend_ptr_stack_pop(&EG(arg_types_stack)); } for (i=0; ilast_brk_cont; i++) { diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 8e41473d95..742c42c828 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -298,7 +298,9 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR EG(called_scope) = EX(called_scope); } - zend_ptr_stack_3_pop(&EG(arg_types_stack), (void*)&EX(called_scope), (void**)&EX(current_object), (void**)&EX(fbc)); + EX(called_scope) = zend_ptr_stack_pop(&EG(arg_types_stack)); + EX(current_object) = zend_ptr_stack_pop(&EG(arg_types_stack)); + EX(fbc) = zend_ptr_stack_pop(&EG(arg_types_stack)); EX(function_state).arguments = zend_vm_stack_push_args(opline->extended_value TSRMLS_CC); if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION) { @@ -644,7 +646,8 @@ static int ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER zval_ptr_dtor(&EX(object)); } EX(called_scope) = DECODE_CTOR(EX(called_scope)); - zend_ptr_stack_2_pop(&EG(arg_types_stack), (void**)&EX(object), (void**)&EX(fbc)); + EX(object) = zend_ptr_stack_pop(&EG(arg_types_stack)); + EX(fbc) = zend_ptr_stack_pop(&EG(arg_types_stack)); } for (i=0; ilast_brk_cont; i++) { -- 2.40.0