summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/string.c5
-rw-r--r--ext/standard/tests/strings/bug53319.phpt17
2 files changed, 19 insertions, 3 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c
index abd33d6ee8..e39b0cb6ec 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -4210,9 +4210,8 @@ int php_tag_find(char *tag, int len, char *set) {
if (!isspace((int)c)) {
if (state == 0) {
state=1;
- if (c != '/')
- *(n++) = c;
- } else {
+ }
+ if (c != '/') {
*(n++) = c;
}
} else {
diff --git a/ext/standard/tests/strings/bug53319.phpt b/ext/standard/tests/strings/bug53319.phpt
new file mode 100644
index 0000000000..0bcc06d5ec
--- /dev/null
+++ b/ext/standard/tests/strings/bug53319.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Bug #53319 (Strip_tags() may strip '<br />' incorrectly)
+--FILE--
+<?php
+
+$str = '<br /><br />USD<input type="text"/><br/>CDN<br><input type="text" />';
+var_dump(strip_tags($str, '<input>'));
+var_dump(strip_tags($str, '<br><input>') === $str);
+var_dump(strip_tags($str));
+var_dump(strip_tags('<a/b>', '<a>'));
+
+?>
+--EXPECTF--
+string(47) "USD<input type="text"/>CDN<input type="text" />"
+bool(true)
+string(6) "USDCDN"
+string(0) ""