From: Dmitry Stogov Date: Wed, 7 May 2014 18:08:25 +0000 (+0400) Subject: Interned strings must not be modified in-place X-Git-Tag: POST_PHPNG_MERGE~384^2~24^2~10 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d41d6cf20670f1ff555db1ee5523c45b0f0c83fc;p=php Interned strings must not be modified in-place MAKE_COPY_ZVAL() should be changed into ZVAL_DUP() --- 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);