]> git.kaiwu.me - njs.git/commit
XML: release parser context after parsing
authorDmitry Volyntsev <xeioex@nginx.com>
Wed, 16 Sep 2026 22:03:40 +0000 (15:03 -0700)
committerDmitry Volyntsev <xeioex@nginx.com>
Wed, 30 Sep 2026 18:56:44 +0000 (11:56 -0700)
commit77f8e260c04b2402006a4b644c86e1af79c87b7e
tree9822a8322e151dffb3cf7517ce1702605dbb48f3
parente5728cba528ca75993491b2d6d8bb22fb28e732d
XML: release parser context after parsing

Previously, XML parser contexts were retained with their parsed documents.
When parsing failed in the njs engine, no cleanup was registered, leaking
the context and allowing repeated malformed XML input to grow memory usage
in long-lived NGINX worker processes.

The fix is to limit parser contexts to the parse operation and release
them immediately after parsing or error reporting. The VM cleanup now owns
only the parsed document.
external/njs_xml_module.c
external/qjs_xml_module.c
test/xml/xml.t.mjs