1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-10-24 13:33:01 +03:00

tree: Only allow elements in xmlDocSetRootElement

This commit is contained in:
Nick Wellnhofer
2024-02-22 18:13:53 +01:00
parent d5f5060246
commit 4b698dbaec
3 changed files with 3 additions and 3 deletions

View File

@@ -224,7 +224,7 @@ extra_post_call = {
"xmlAddPrevSibling":
"if (ret_val == NULL) { xmlFreeNode(elem) ; elem = NULL ; }",
"xmlDocSetRootElement":
"if (doc == NULL) { xmlFreeNode(root) ; root = NULL ; }",
"if (ret_val == NULL) { xmlFreeNode(root) ; root = NULL ; }",
"xmlReplaceNode":
"""if (cur != NULL) {
xmlUnlinkNode(cur);

View File

@@ -19789,7 +19789,7 @@ test_xmlDocSetRootElement(void) {
root = gen_xmlNodePtr_in(n_root, 1);
ret_val = xmlDocSetRootElement(doc, root);
if (doc == NULL) { xmlFreeNode(root) ; root = NULL ; }
if (ret_val == NULL) { xmlFreeNode(root) ; root = NULL ; }
desret_xmlNodePtr(ret_val);
call_tests++;
des_xmlDocPtr(n_doc, doc, 0);

2
tree.c
View File

@@ -5060,7 +5060,7 @@ xmlDocSetRootElement(xmlDocPtr doc, xmlNodePtr root) {
xmlNodePtr old = NULL;
if (doc == NULL) return(NULL);
if ((root == NULL) || (root->type == XML_NAMESPACE_DECL))
if ((root == NULL) || (root->type != XML_ELEMENT_NODE))
return(NULL);
xmlUnlinkNode(root);
xmlSetTreeDoc(root, doc);