PHP_FUNCTION(domxml_node_add_child)
{
zval *id, *rv, *node;
- xmlNodePtr child, nodep;
+ xmlNodePtr child, nodep, new_child;
int ret;
DOMXML_GET_THIS_OBJ(nodep, id, le_domxmlnodep);
DOMXML_GET_OBJ(child, node, le_domxmlnodep);
- child = xmlAddChild(nodep, child);
+ if (NULL == (new_child = xmlCopyNode(child, 1))) {
+ php_error(E_WARNING, "%s() unable to clone node", get_active_function_name(TSRMLS_C));
+ RETURN_FALSE;
+ }
+
+ child = xmlAddChild(nodep, new_child);
if (NULL == child) {
php_error(E_WARNING, "%s() couldn't add child", get_active_function_name(TSRMLS_C));