From cba6bfb514172cb204286d68679d4aed4d6def11 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Tue, 24 Oct 2006 15:06:01 +0000 Subject: [PATCH] Fixed a bug when callback function returns a non-modified value --- ext/filter/callback_filter.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ext/filter/callback_filter.c b/ext/filter/callback_filter.c index d0f6708fbf..a825a5dc38 100644 --- a/ext/filter/callback_filter.c +++ b/ext/filter/callback_filter.c @@ -39,9 +39,10 @@ void php_filter_callback(PHP_INPUT_FILTER_PARAM_DECL) status = call_user_function_ex(EG(function_table), NULL, option_array, &retval_ptr, 1, args, 0, NULL TSRMLS_CC); if (status == SUCCESS && retval_ptr != NULL) { - zval_dtor(value); - *value = *retval_ptr; - zval_copy_ctor(value); + if (retval_ptr != value) { + zval_dtor(value); + COPY_PZVAL_TO_ZVAL(*value, retval_ptr); + } } else { zval_dtor(value); Z_TYPE_P(value) = IS_NULL; -- 2.50.1