Skip to content

Commit fdbdb11

Browse files
whatthejefflaruence
authored andcommitted
Fix #69202: FILTER_FLAG_STRIP_BACKTICK ignored unless other flags are used.
1 parent 2a2c749 commit fdbdb11

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

ext/filter/sanitizing_filters.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ static void php_filter_strip(zval *value, zend_long flags)
115115
zend_string *buf;
116116

117117
/* Optimization for if no strip flags are set */
118-
if (! ((flags & FILTER_FLAG_STRIP_LOW) || (flags & FILTER_FLAG_STRIP_HIGH)) ) {
118+
if (!(flags & (FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH | FILTER_FLAG_STRIP_BACKTICK))) {
119119
return;
120120
}
121121

ext/filter/tests/bug69202.phpt

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
--TEST--
2+
Bug #69202 (FILTER_FLAG_STRIP_BACKTICK ignored unless other flags are used)
3+
--SKIPIF--
4+
<?php if (!extension_loaded("filter")) die("skip"); ?>
5+
--FILE--
6+
<?php
7+
var_dump(filter_var("``a`b`c``", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_BACKTICK));
8+
var_dump(filter_var("``a`b`c``", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_BACKTICK));
9+
var_dump(filter_var("``a`b`c``", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH | FILTER_FLAG_STRIP_BACKTICK));
10+
var_dump(filter_var("``a`b`c``", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH));
11+
?>
12+
--EXPECT--
13+
string(3) "abc"
14+
string(3) "abc"
15+
string(3) "abc"
16+
string(9) "``a`b`c``"

0 commit comments

Comments
 (0)