diff options
author | Dmitry Stogov <dmitry@zend.com> | 2014-05-07 22:08:25 +0400 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2014-05-07 22:08:25 +0400 |
commit | d41d6cf20670f1ff555db1ee5523c45b0f0c83fc (patch) | |
tree | 42adaad5a7ffb1d943ac12a358984310792d3afe | |
parent | 37d9f1e6e91856922726fb950bd3f3e88ed68efb (diff) | |
download | php-git-d41d6cf20670f1ff555db1ee5523c45b0f0c83fc.tar.gz |
Interned strings must not be modified in-place
MAKE_COPY_ZVAL() should be changed into ZVAL_DUP()
-rw-r--r-- | ext/filter/filter.c | 2 | ||||
-rw-r--r-- | ext/filter/sanitizing_filters.c | 4 |
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); |