From 2bbda84c5f858cd31e9947b68be61f9c41fe1e15 Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Mon, 13 Nov 2006 14:59:47 +0000 Subject: [PATCH] actually copy input to return_value input is a local var, you can't use it this way --- ext/filter/filter.c | 2 ++ 1 file changed, 2 insertions(+) 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); -- 2.50.1