Skip to content

Commit ff3878a

Browse files
committed
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3: Fix #77040: tidyNode::isHtml() is completely broken
2 parents 683c988 + e68acd0 commit ff3878a

File tree

3 files changed

+37
-4
lines changed

3 files changed

+37
-4
lines changed

NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ PHP NEWS
4444
. Fixed bug #76943 (Inconsistent stream_wrapper_restore() errors). (cmb)
4545
. Fixed bug #76735 (Incorrect message in fopen on invalid mode). (cmb)
4646

47+
- Tidy:
48+
. Fixed bug #77040 (tidyNode::isHtml() is completely broken). (cmb)
49+
4750
01 Oct 2020, PHP 7.4.11
4851

4952
- Core:

ext/tidy/tests/bug77040.phpt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
--TEST--
2+
Bug #77040 (tidyNode::isHtml() is completely broken)
3+
--SKIPIF--
4+
<?php
5+
if (!extension_loaded('tidy')) die('skip tidy extension not available');
6+
?>
7+
--FILE--
8+
<?php
9+
$tidy = new tidy;
10+
$tidy->parseString("<p>text</p><p><![CDATA[cdata]]></p>");
11+
$p = $tidy->body()->child[0];
12+
var_dump($p->type === TIDY_NODETYPE_START);
13+
var_dump($p->isHtml());
14+
$text = $p->child[0];
15+
var_dump($text->type === TIDY_NODETYPE_TEXT);
16+
var_dump($text->isHtml());
17+
$cdata = $tidy->body()->child[1]->child[0];
18+
var_dump($cdata->type === TIDY_NODETYPE_CDATA);
19+
var_dump($cdata->isHtml());
20+
?>
21+
--EXPECT--
22+
bool(true)
23+
bool(true)
24+
bool(true)
25+
bool(false)
26+
bool(true)
27+
bool(false)

ext/tidy/tidy.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1798,11 +1798,14 @@ static TIDY_NODE_METHOD(isHtml)
17981798
{
17991799
TIDY_FETCH_ONLY_OBJECT;
18001800

1801-
if (tidyNodeGetType(obj->node) & (TidyNode_Start | TidyNode_End | TidyNode_StartEnd)) {
1802-
RETURN_TRUE;
1801+
switch (tidyNodeGetType(obj->node)) {
1802+
case TidyNode_Start:
1803+
case TidyNode_End:
1804+
case TidyNode_StartEnd:
1805+
RETURN_TRUE;
1806+
default:
1807+
RETURN_FALSE;
18031808
}
1804-
1805-
RETURN_FALSE;
18061809
}
18071810
/* }}} */
18081811

0 commit comments

Comments
 (0)