summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2020-10-07 17:47:40 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2020-10-07 17:48:12 +0200
commitff3878adeb5e73e514a0f7a1cb367a3b350301c9 (patch)
tree6eba0e89da9aaa81709af35de867243c1929aec9
parent683c988493920e033f0c7f5455ebfc3825c38887 (diff)
parente68acd031db679ff882710ce89bfac67e65bd9f0 (diff)
downloadphp-git-ff3878adeb5e73e514a0f7a1cb367a3b350301c9.tar.gz
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3: Fix #77040: tidyNode::isHtml() is completely broken
-rw-r--r--NEWS3
-rw-r--r--ext/tidy/tests/bug77040.phpt27
-rw-r--r--ext/tidy/tidy.c11
3 files changed, 37 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index 5907cc864f..c2662b8c97 100644
--- a/NEWS
+++ b/NEWS
@@ -44,6 +44,9 @@ PHP NEWS
. Fixed bug #76943 (Inconsistent stream_wrapper_restore() errors). (cmb)
. Fixed bug #76735 (Incorrect message in fopen on invalid mode). (cmb)
+- Tidy:
+ . Fixed bug #77040 (tidyNode::isHtml() is completely broken). (cmb)
+
01 Oct 2020, PHP 7.4.11
- Core:
diff --git a/ext/tidy/tests/bug77040.phpt b/ext/tidy/tests/bug77040.phpt
new file mode 100644
index 0000000000..a1af00bdfb
--- /dev/null
+++ b/ext/tidy/tests/bug77040.phpt
@@ -0,0 +1,27 @@
+--TEST--
+Bug #77040 (tidyNode::isHtml() is completely broken)
+--SKIPIF--
+<?php
+if (!extension_loaded('tidy')) die('skip tidy extension not available');
+?>
+--FILE--
+<?php
+$tidy = new tidy;
+$tidy->parseString("<p>text</p><p><![CDATA[cdata]]></p>");
+$p = $tidy->body()->child[0];
+var_dump($p->type === TIDY_NODETYPE_START);
+var_dump($p->isHtml());
+$text = $p->child[0];
+var_dump($text->type === TIDY_NODETYPE_TEXT);
+var_dump($text->isHtml());
+$cdata = $tidy->body()->child[1]->child[0];
+var_dump($cdata->type === TIDY_NODETYPE_CDATA);
+var_dump($cdata->isHtml());
+?>
+--EXPECT--
+bool(true)
+bool(true)
+bool(true)
+bool(false)
+bool(true)
+bool(false) \ No newline at end of file
diff --git a/ext/tidy/tidy.c b/ext/tidy/tidy.c
index 295ca8d8f0..bf38faf224 100644
--- a/ext/tidy/tidy.c
+++ b/ext/tidy/tidy.c
@@ -1798,11 +1798,14 @@ static TIDY_NODE_METHOD(isHtml)
{
TIDY_FETCH_ONLY_OBJECT;
- if (tidyNodeGetType(obj->node) & (TidyNode_Start | TidyNode_End | TidyNode_StartEnd)) {
- RETURN_TRUE;
+ switch (tidyNodeGetType(obj->node)) {
+ case TidyNode_Start:
+ case TidyNode_End:
+ case TidyNode_StartEnd:
+ RETURN_TRUE;
+ default:
+ RETURN_FALSE;
}
-
- RETURN_FALSE;
}
/* }}} */