View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0002890 | LibDOM | [All Projects] General | public | 2025-01-14 13:56 | 2025-01-14 13:56 | ||||||||
Reporter | Michael Orlitzky | ||||||||||||
Assigned To | |||||||||||||
Priority | normal | Severity | major | Reproducibility | always | ||||||||
Status | new | Resolution | open | ||||||||||
Summary | 0002890: libdom crashes when built with libxml2-2.13.x | ||||||||||||
Description | Apparently 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 | ||||||||||||
Tags | No tags attached. | ||||||||||||
Fixed in CI build # | |||||||||||||
Reported in CI build # | |||||||||||||
Attached Files |
|
Issue History | |||
Date Modified | Username | Field | Change |
---|---|---|---|
2025-01-14 13:56 | Michael Orlitzky | New Issue |