From: Felipe Pena Date: Fri, 21 Nov 2008 19:16:50 +0000 (+0000) Subject: - MFH: Fixed bug #46578 (strip_tags() does not honor end-of-comment when it encounter... X-Git-Tag: php-5.3.0alpha2~110 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b4150fdc3f7c877c368f4b180385c135567720dc;p=php - MFH: Fixed bug #46578 (strip_tags() does not honor end-of-comment when it encounters a single quote) --- diff --git a/ext/standard/string.c b/ext/standard/string.c index c2d7ddf21c..d3a6fdffd8 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -4353,7 +4353,10 @@ PHPAPI size_t php_strip_tags_ex(char *rbuf, int len, int *stateptr, char *allow, case '"': case '\'': - if (state == 2 && *(p-1) != '\\') { + if (state == 4) { + /* Inside */ + break; + } else if (state == 2 && *(p-1) != '\\') { if (lc == c) { lc = '\0'; } else if (lc != '\\') { diff --git a/ext/standard/tests/strings/bug46578.phpt b/ext/standard/tests/strings/bug46578.phpt new file mode 100644 index 0000000000..ba9fbbe460 --- /dev/null +++ b/ext/standard/tests/strings/bug46578.phpt @@ -0,0 +1,25 @@ +--TEST-- +Bug #46578 (strip_tags() does not honor end-of-comment when it encounters a single quote) +--FILE-- +foobar')); + +var_dump(strip_tags('foobar')); + +var_dump(strip_tags('foo */ ?>bar')); + +var_dump(strip_tags('< ax')); + +var_dump(strip_tags('')); + +var_dump(strip_tags(' +--EXPECTF-- +%string|unicode%(6) "foobar" +%string|unicode%(6) "foobar" +%string|unicode%(6) "foobar" +%string|unicode%(4) "< ax" +%string|unicode%(0) "" +%string|unicode%(0) ""