Files
third_party_libxml2/Fix-CVE-2023-45322-second.patch
2024-03-19 08:34:46 +00:00

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