MantisBT - LibDOM
View Issue Details
0002890LibDOM[All Projects] Generalpublic2025-01-14 13:562025-03-01 18:10
ReporterMichael Orlitzky 
Assigned ToJohn-Mark Bell 
PrioritynormalSeveritymajorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
Fixed in CI build #
Reported in CI build #
Summary0002890: libdom crashes when built with libxml2-2.13.x
DescriptionApparently libdom is relying on some internal details of libxml2 during parsing (bindings/xml/libxml_xmlparser.c). The first indication of this is that the libdom test suite fails after upgrading to libxml2-2.13.5. Upon closer inspection, libdom is segfaulting because there's a NULL where it isn't expecting one (missing parent).

In short, the problem is with the assumption that this will retrieve the parent element:

  xmlNodePtr parent = parser->xml_ctx->node;

In libxml2-2.13.x, XML entities are parsed into a dummy element, and we are retrieving that dummy element with the code above. In earlier versions of libxml2, the same entities were parsed into a temporary context where xml_ctx->node by coincidence still points to the previous node, so it happened to work.

Refs:

* https://bugs.gentoo.org/946980
* https://gitlab.gnome.org/GNOME/libxml2/-/issues/837
TagsNo tags attached.
Attached Files

Notes
(0002472)
John-Mark Bell   
2025-03-01 16:28   
Should be resolved by https://git.netsurf-browser.org/libdom.git/commit/?id=fbe14d69c8ca70edd1c0930981a75bc02b00bf1b

Issue History
2025-01-14 13:56Michael OrlitzkyNew Issue
2025-03-01 16:28John-Mark BellNote Added: 0002472
2025-03-01 18:09John-Mark BellAssigned To => John-Mark Bell
2025-03-01 18:09John-Mark BellStatusnew => closed
2025-03-01 18:09John-Mark BellResolutionopen => fixed
2025-03-01 18:10John-Mark BellStatusclosed => resolved