php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #77040 tidyNode::isHtml() is completely broken
Submitted: 2018-10-19 22:57 UTC Modified: -
From: cmb@php.net Assigned:
Status: Open Package: Tidy (PECL)
PHP Version: master-Git-2018-10-19 (Git) OS: *
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: cmb@php.net
New email:
PHP Version: OS:

 

 [2018-10-19 22:57 UTC] cmb@php.net
Description:
------------
From looking at the implementation[1], tidyNode::isHtml() is
presumably supposed to check whether the node is a start, end or
empty tag.  However, it uses members of the TidyNodeType enum[2]
as if these were bitfields, which they are not.  Therefore it
matches all node types except TidyNode_CDATA.

The documentation states[3]:

| Checks if a node is part of a HTML document

This does neither match the implementation, nor what the method
presumably is supposed to do.

[1] <https://github.com/php/php-src/blob/php-7.3.0RC3/ext/tidy/tidy.c#L1785-L1794>
[2] <http://api.html-tidy.org/tidy/tidylib_api_5.0.0/tidyenum_8h.html#a4af7ceeebf0ce18b70ed74f5db2cdf72>
[3] <http://php.net/manual/en/tidynode.ishtml.php>


Patches

Add a Patch

Pull Requests

Add a Pull Request

 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Tue Aug 20 19:01:29 2019 UTC