diff options
-rw-r--r-- | ext/standard/filters.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/ext/standard/filters.c b/ext/standard/filters.c index 565831139c..918377a5e7 100644 --- a/ext/standard/filters.c +++ b/ext/standard/filters.c @@ -214,9 +214,8 @@ static php_stream_filter_status_t strfilter_strip_tags_filter( bucket = php_stream_bucket_make_writeable(buckets_in->head TSRMLS_CC); consumed = bucket->buflen; - php_strip_tags(bucket->buf, bucket->buflen, &(inst->state), (char *)inst->allowed_tags, inst->allowed_tags_len); + bucket->buflen = php_strip_tags(bucket->buf, bucket->buflen, &(inst->state), (char *)inst->allowed_tags, inst->allowed_tags_len); - bucket->buflen = strlen(bucket->buf); php_stream_bucket_append(buckets_out, bucket TSRMLS_CC); } @@ -232,6 +231,8 @@ static void strfilter_strip_tags_dtor(php_stream_filter *thisfilter TSRMLS_DC) assert(thisfilter->abstract != NULL); php_strip_tags_filter_dtor((php_strip_tags_filter *)thisfilter->abstract); + + pefree(thisfilter->abstract, ((php_strip_tags_filter *)thisfilter->abstract)->persistent); } static php_stream_filter_ops strfilter_strip_tags_ops = { |