From: Antony Dovgal Date: Mon, 13 Nov 2006 14:59:47 +0000 (+0000) Subject: actually copy input to return_value X-Git-Tag: RELEASE_1_0_0RC1~1031 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2bbda84c5f858cd31e9947b68be61f9c41fe1e15;p=php actually copy input to return_value input is a local var, you can't use it this way --- diff --git a/ext/filter/filter.c b/ext/filter/filter.c index 344353b0bc..56f2c27818 100644 --- a/ext/filter/filter.c +++ b/ext/filter/filter.c @@ -617,10 +617,12 @@ static void php_filter_array_handler(zval *input, zval **op, zval *return_value if (!op) { SEPARATE_ZVAL(&input); *return_value = *input; + zval_copy_ctor(return_value); php_filter_call(&return_value, FILTER_DEFAULT, NULL, 0, FILTER_REQUIRE_ARRAY TSRMLS_CC); } else if (Z_TYPE_PP(op) == IS_LONG) { SEPARATE_ZVAL(&input); *return_value = *input; + zval_copy_ctor(return_value); php_filter_call(&return_value, Z_LVAL_PP(op), NULL, 0, FILTER_REQUIRE_ARRAY TSRMLS_CC); } else if (Z_TYPE_PP(op) == IS_ARRAY) { array_init(return_value);