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-03-01 18:10 | ||||
Reporter | Michael Orlitzky | ||||||||
Assigned To | John-Mark Bell | ||||||||
Priority | normal | Severity | major | Reproducibility | always | ||||
Status | resolved | Resolution | fixed | ||||||
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 |
|
![]() |
|
John-Mark Bell (administrator) 2025-03-01 16:28 |
Should be resolved by https://git.netsurf-browser.org/libdom.git/commit/?id=fbe14d69c8ca70edd1c0930981a75bc02b00bf1b |
![]() |
|||
Date Modified | Username | Field | Change |
---|---|---|---|
2025-01-14 13:56 | Michael Orlitzky | New Issue | |
2025-03-01 16:28 | John-Mark Bell | Note Added: 0002472 | |
2025-03-01 18:09 | John-Mark Bell | Assigned To | => John-Mark Bell |
2025-03-01 18:09 | John-Mark Bell | Status | new => closed |
2025-03-01 18:09 | John-Mark Bell | Resolution | open => fixed |
2025-03-01 18:10 | John-Mark Bell | Status | closed => resolved |