]> granicus.if.org Git - php/commit
Fix #70078: XSL callbacks with nodes as parameter leak memory
authorChristoph M. Becker <cmbecker69@gmx.de>
Wed, 29 Jan 2020 17:23:51 +0000 (18:23 +0100)
committerChristoph M. Becker <cmbecker69@gmx.de>
Thu, 30 Jan 2020 12:04:57 +0000 (13:04 +0100)
commit8226e704e4e6066a5bd41b57b2934a3371896be2
tree86fca74729179e8ebda16c108b1068f19579aaea
parent494615fcb8c1fb5984e0e7d666e51a2dfc6bee55
Fix #70078: XSL callbacks with nodes as parameter leak memory

The fix for bug #49634 solved a double-free by copying the node with
`xmlDocCopyNodeList()`, but the copied node is later freed by calling
`xmlFreeNode()` instead of `xmlFreeNodeList()`, thus leaking memory.
However, there is no need to treat the node as node list, i.e. to copy
also the node's siblings; just creating a recursive copy of the node
with `xmlDocCopyNode()` is sufficient, while that also avoids the leak.
NEWS
ext/xsl/tests/bug70078.phpt [new file with mode: 0644]
ext/xsl/xsltprocessor.c