summaryrefslogtreecommitdiff
path: root/ext/filter
diff options
context:
space:
mode:
authorJeff Welch <whatthejeff@gmail.com>2015-03-09 03:54:19 -0400
committerXinchen Hui <laruence@php.net>2015-03-09 17:14:47 +0800
commitfdbdb1151457a59bc6598de4b98b12aa522b4134 (patch)
tree23f9f364ad927ff873b5b39766db7435459fc551 /ext/filter
parent2a2c74997dd754b27c5d890c0025001878318664 (diff)
downloadphp-git-fdbdb1151457a59bc6598de4b98b12aa522b4134.tar.gz
Fix #69202: FILTER_FLAG_STRIP_BACKTICK ignored unless other flags are used.
Diffstat (limited to 'ext/filter')
-rw-r--r--ext/filter/sanitizing_filters.c2
-rw-r--r--ext/filter/tests/bug69202.phpt16
2 files changed, 17 insertions, 1 deletions
diff --git a/ext/filter/sanitizing_filters.c b/ext/filter/sanitizing_filters.c
index f786f29ce7..43241cc1ef 100644
--- a/ext/filter/sanitizing_filters.c
+++ b/ext/filter/sanitizing_filters.c
@@ -115,7 +115,7 @@ static void php_filter_strip(zval *value, zend_long flags)
zend_string *buf;
/* Optimization for if no strip flags are set */
- if (! ((flags & FILTER_FLAG_STRIP_LOW) || (flags & FILTER_FLAG_STRIP_HIGH)) ) {
+ if (!(flags & (FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH | FILTER_FLAG_STRIP_BACKTICK))) {
return;
}
diff --git a/ext/filter/tests/bug69202.phpt b/ext/filter/tests/bug69202.phpt
new file mode 100644
index 0000000000..992298611f
--- /dev/null
+++ b/ext/filter/tests/bug69202.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Bug #69202 (FILTER_FLAG_STRIP_BACKTICK ignored unless other flags are used)
+--SKIPIF--
+<?php if (!extension_loaded("filter")) die("skip"); ?>
+--FILE--
+<?php
+var_dump(filter_var("``a`b`c``", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_BACKTICK));
+var_dump(filter_var("``a`b`c``", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_BACKTICK));
+var_dump(filter_var("``a`b`c``", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH | FILTER_FLAG_STRIP_BACKTICK));
+var_dump(filter_var("``a`b`c``", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH));
+?>
+--EXPECT--
+string(3) "abc"
+string(3) "abc"
+string(3) "abc"
+string(9) "``a`b`c``"