From 3a88d5a68e095e5af4c27d22311e2ea92c426190 Mon Sep 17 00:00:00 2001 From: Andi Gutmans Date: Sun, 10 Oct 1999 18:31:42 +0000 Subject: [PATCH] - Didn't lower refcount when doing an internal function call linked to a regular object. --- Zend/zend_execute.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 902d75b689a..97861d0299a 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1463,7 +1463,10 @@ do_fcall_common: zend_ptr_stack_push(&EG(argument_stack), (void *) opline->extended_value); if (function_state.function->type==ZEND_INTERNAL_FUNCTION) { var_uninit(&Ts[opline->result.u.var].tmp_var); - ((zend_internal_function *) function_state.function)->handler(opline->extended_value, &Ts[opline->result.u.var].tmp_var, &EG(regular_list), &EG(persistent_list), (object.ptr?object.ptr:NULL)); + ((zend_internal_function *) function_state.function)->handler(opline->extended_value, &Ts[opline->result.u.var].tmp_var, &EG(regular_list), &EG(persistent_list), object.ptr); + if (object.ptr) { + object.ptr->refcount--; + } } else if (function_state.function->type==ZEND_USER_FUNCTION) { HashTable *calling_symbol_table;