Merge branch 'PHP-7.0'

* PHP-7.0:
  Updated NEWS
  Fix #70720
This commit is contained in:
Julien Pauli 2016-02-02 18:17:53 +01:00
commit 00db03b57c
2 changed files with 23 additions and 3 deletions

View file

@ -4711,6 +4711,7 @@ PHPAPI size_t php_strip_tags_ex(char *rbuf, size_t len, int *stateptr, const cha
size_t pos, i = 0; size_t pos, i = 0;
char *allow_free = NULL; char *allow_free = NULL;
const char *allow_actual; const char *allow_actual;
char is_xml = 0;
if (stateptr) if (stateptr)
state = *stateptr; state = *stateptr;
@ -4806,7 +4807,10 @@ PHPAPI size_t php_strip_tags_ex(char *rbuf, size_t len, int *stateptr, const cha
switch (state) { switch (state) {
case 1: /* HTML/XML */ case 1: /* HTML/XML */
lc = '>'; lc = '>';
in_q = state = 0; if (is_xml && *(p -1) == '-') {
break;
}
in_q = state = is_xml = 0;
if (allow) { if (allow) {
if (tp - tbuf >= PHP_TAG_BUF_SIZE) { if (tp - tbuf >= PHP_TAG_BUF_SIZE) {
pos = tp - tbuf; pos = tp - tbuf;
@ -4935,8 +4939,8 @@ PHPAPI size_t php_strip_tags_ex(char *rbuf, size_t len, int *stateptr, const cha
* state == 2 (PHP). Switch back to HTML. * state == 2 (PHP). Switch back to HTML.
*/ */
if (state == 2 && p > buf+2 && strncasecmp(p-2, "xm", 2) == 0) { if (state == 2 && p > buf+2 && strncasecmp(p-4, "<?xm", 4) == 0) {
state = 1; state = 1; is_xml=1;
break; break;
} }

View file

@ -0,0 +1,16 @@
--TEST--
Bug #70720 (strip_tags() doesnt handle "xml" correctly)
--FILE--
<?php
var_dump(strip_tags('<?php $dom->test(); ?> this is a test'));
var_dump(strip_tags('<?php $xml->test(); ?> this is a test'));
var_dump(strip_tags('<?xml $xml->test(); ?> this is a test'));
/* "->" case in HTML */
var_dump(strip_tags("<span class=sf-dump-> this is a test</span>"));
?>
--EXPECTF--
string(15) " this is a test"
string(15) " this is a test"
string(15) " this is a test"
string(15) " this is a test"