From: Felipe Pena Date: Fri, 11 Jul 2008 12:43:06 +0000 (+0000) Subject: - MFB: Fixed bug #45485 (strip_tags and 2 && prev1 == 'm' && prev2 == 'x') { + if (state == 2 && codepts > 2 && (prev1 == 'm' || prev1 == 'M') && (prev2 == 'x' || prev2 == 'X')) { state = 1; break; } @@ -6859,12 +6860,13 @@ PHPAPI size_t php_strip_tags_ex(char *rbuf, int len, int *stateptr, char *allow, /* fall-through */ case 'l': + case 'L': /* swm: If we encounter ' buf+2 && *(p-1) == 'm' && *(p-2) == 'x') { + if (state == 2 && p > buf+2 && strncasecmp(p-2, "xm", 2) == 0) { state = 1; break; } diff --git a/ext/standard/tests/strings/bug45485.phpt b/ext/standard/tests/strings/bug45485.phpt new file mode 100644 index 0000000000..4d24c9ad87 --- /dev/null +++ b/ext/standard/tests/strings/bug45485.phpt @@ -0,0 +1,23 @@ +--TEST-- +Bug #45485 (strip_tags and This Text disappears +EOD; + +$s = strip_tags($s); +echo htmlspecialchars($s),"\n"; + +$s =<<< EOD +This text is shown This Text disappears +EOD; + +$s = strip_tags($s); +echo htmlspecialchars($s),"\n"; + +?> +--EXPECT-- +This text is shown This Text disappears +This text is shown This Text disappears