mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Merge branch 'PHP-8.4'
* PHP-8.4: Fix GH-17145: DOM memory leak
This commit is contained in:
@@ -2371,7 +2371,7 @@ void php_dom_get_content_into_zval(const xmlNode *nodep, zval *return_value, boo
|
||||
case XML_ATTRIBUTE_NODE: {
|
||||
bool free;
|
||||
xmlChar *value = php_libxml_attr_value((const xmlAttr *) nodep, &free);
|
||||
RETURN_STRING_FAST((const char *) value);
|
||||
RETVAL_STRING_FAST((const char *) value);
|
||||
if (free) {
|
||||
xmlFree(value);
|
||||
}
|
||||
|
||||
22
ext/dom/tests/gh17145.phpt
Normal file
22
ext/dom/tests/gh17145.phpt
Normal file
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
GH-17145 (DOM memory leak)
|
||||
--EXTENSIONS--
|
||||
dom
|
||||
--CREDITS--
|
||||
YuanchengJiang
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (LIBXML_VERSION < 21300) die("skip Upstream libxml bug causes incorrect output, fixed in GNOME/libxml2@b8597f4");
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
$element = new DOMElement("N", "W", "y");
|
||||
$attr = new DOMAttr("c" , "n");
|
||||
$doc = new DOMDocument();
|
||||
$doc->appendChild($element);
|
||||
$element->setAttributeNodeNS($attr);
|
||||
$attr->appendChild($doc->createEntityReference('amp'));
|
||||
echo $attr->value;
|
||||
?>
|
||||
--EXPECT--
|
||||
n&
|
||||
Reference in New Issue
Block a user