From: Ilia Alshanetsky Date: Tue, 24 Oct 2006 15:06:01 +0000 (+0000) Subject: Fixed a bug when callback function returns a non-modified value X-Git-Tag: RELEASE_1_0_0RC1~1215 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cba6bfb514172cb204286d68679d4aed4d6def11;p=php Fixed a bug when callback function returns a non-modified value --- 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;