]> granicus.if.org Git - php/commitdiff
MFH: Fix aliasing issue (fixes #48409 , #48428 , #48228)
authorArnaud Le Blanc <lbarnaud@php.net>
Sat, 30 May 2009 16:35:26 +0000 (16:35 +0000)
committerArnaud Le Blanc <lbarnaud@php.net>
Sat, 30 May 2009 16:35:26 +0000 (16:35 +0000)
Zend/zend_vm_def.h
Zend/zend_vm_execute.h

index 0febb18da67a0f00e1af927a66b818a3344ffbb4..b14914bbff36f88ce54a460839d1a6fcacf3c273 100644 (file)
@@ -2084,7 +2084,8 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
                EG(This) = current_this;
                EG(scope) = current_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));
 
        zend_ptr_stack_clear_multiple(TSRMLS_C);
 
@@ -3856,7 +3857,8 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
                        }
                        zval_ptr_dtor(&EX(object));
                }
-               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; i<EX(op_array)->last_brk_cont; i++) {
index f3346d045c918bfe0eaf673e92dec46656398c9b..febacef61550d7bbb25dc2f732bf70343cb8e8d5 100644 (file)
@@ -302,7 +302,8 @@ static int zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
                EG(This) = current_this;
                EG(scope) = current_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));
 
        zend_ptr_stack_clear_multiple(TSRMLS_C);
 
@@ -562,7 +563,8 @@ static int ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
                        }
                        zval_ptr_dtor(&EX(object));
                }
-               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; i<EX(op_array)->last_brk_cont; i++) {