mirror of
https://github.com/openharmony/third_party_libxml2.git
synced 2026-08-24 23:31:27 -04:00
90ae841d52
Signed-off-by: 冉召宇 <ranzhaoyu1@huawei.com>
43 lines
1.2 KiB
Diff
43 lines
1.2 KiB
Diff
From 502971cc23e0ebb2677124b41b70c321c6dd5c02 Mon Sep 17 00:00:00 2001
|
|
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
|
Date: Fri, 1 Dec 2023 17:49:48 +0100
|
|
Subject: [PATCH] tree: Another fix related to #538
|
|
|
|
Should fix #639.
|
|
---
|
|
tree.c | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
diff --git a/tree.c b/tree.c
|
|
index 35dabb97c..dc3ac4f92 100644
|
|
--- a/tree.c
|
|
+++ b/tree.c
|
|
@@ -4379,6 +4379,7 @@ xmlStaticCopyNodeList(xmlNodePtr node, xmlDocPtr doc, xmlNodePtr parent) {
|
|
xmlNodePtr ret = NULL;
|
|
xmlNodePtr p = NULL,q;
|
|
xmlDtdPtr newSubset = NULL;
|
|
+ int linkedSubset = 0;
|
|
|
|
while (node != NULL) {
|
|
#ifdef LIBXML_TREE_ENABLED
|
|
@@ -4395,6 +4396,7 @@ xmlStaticCopyNodeList(xmlNodePtr node, xmlDocPtr doc, xmlNodePtr parent) {
|
|
newSubset = (xmlDtdPtr) q;
|
|
xmlAddChild(parent, q);
|
|
} else {
|
|
+ linkedSubset = 1;
|
|
q = (xmlNodePtr) doc->intSubset;
|
|
xmlAddChild(parent, q);
|
|
}
|
|
@@ -4417,6 +4419,8 @@ xmlStaticCopyNodeList(xmlNodePtr node, xmlDocPtr doc, xmlNodePtr parent) {
|
|
doc->intSubset = newSubset;
|
|
return(ret);
|
|
error:
|
|
+ if (linkedSubset != 0)
|
|
+ xmlUnlinkNode((xmlNodePtr) doc->intSubset);
|
|
xmlFreeNodeList(ret);
|
|
return(NULL);
|
|
}
|
|
--
|
|
GitLab
|
|
|