summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/filter/filter.c2
-rw-r--r--ext/filter/sanitizing_filters.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/ext/filter/filter.c b/ext/filter/filter.c
index f77dcb3473..20ecbaa8c1 100644
--- a/ext/filter/filter.c
+++ b/ext/filter/filter.c
@@ -776,7 +776,7 @@ PHP_FUNCTION(filter_var)
RETURN_FALSE;
}
- ZVAL_COPY(return_value, data);
+ ZVAL_DUP(return_value, data);
php_filter_call(return_value, filter, filter_args, 1, FILTER_REQUIRE_SCALAR TSRMLS_CC);
}
diff --git a/ext/filter/sanitizing_filters.c b/ext/filter/sanitizing_filters.c
index 638288a1eb..c93633418f 100644
--- a/ext/filter/sanitizing_filters.c
+++ b/ext/filter/sanitizing_filters.c
@@ -184,6 +184,10 @@ void php_filter_string(PHP_INPUT_FILTER_PARAM_DECL)
size_t new_len;
unsigned char enc[256] = {0};
+ if (IS_INTERNED(Z_STR_P(value))) {
+ ZVAL_STRINGL(value, Z_STRVAL_P(value), Z_STRLEN_P(value));
+ }
+
/* strip high/strip low ( see flags )*/
php_filter_strip(value, flags);