153aa9179Sopenharmony_ciFrom b01853fb42257136461d1b45e45ecaa3f3ecd570 Mon Sep 17 00:00:00 2001 253aa9179Sopenharmony_ciFrom: panxiaohe <panxiaohe@huawei.com> 353aa9179Sopenharmony_ciDate: Tue, 9 Nov 2021 14:27:24 +0800 453aa9179Sopenharmony_ciSubject: [PATCH] Fix memleaks in xmlXIncludeProcessFlags 553aa9179Sopenharmony_ci 653aa9179Sopenharmony_ci--- 753aa9179Sopenharmony_ci tree.c | 18 +++++++++++++----- 853aa9179Sopenharmony_ci 1 file changed, 13 insertions(+), 5 deletions(-) 953aa9179Sopenharmony_ci 1053aa9179Sopenharmony_cidiff --git a/tree.c b/tree.c 1153aa9179Sopenharmony_ciindex 17e59d7..64799fb 100644 1253aa9179Sopenharmony_ci--- a/tree.c 1353aa9179Sopenharmony_ci+++ b/tree.c 1453aa9179Sopenharmony_ci@@ -3720,11 +3720,19 @@ xmlFreeNodeList(xmlNodePtr cur) { 1553aa9179Sopenharmony_ci * Otherwise the node name might come from the document's 1653aa9179Sopenharmony_ci * dictionary 1753aa9179Sopenharmony_ci */ 1853aa9179Sopenharmony_ci- if ((cur->name != NULL) && 1953aa9179Sopenharmony_ci- (cur->type != XML_TEXT_NODE) && 2053aa9179Sopenharmony_ci- (cur->type != XML_COMMENT_NODE)) 2153aa9179Sopenharmony_ci- DICT_FREE(cur->name) 2253aa9179Sopenharmony_ci- xmlFree(cur); 2353aa9179Sopenharmony_ci+ if ((cur->type == XML_DOCUMENT_NODE) || 2453aa9179Sopenharmony_ci+#ifdef LIBXML_DOCB_ENABLED 2553aa9179Sopenharmony_ci+ (cur->type == XML_DOCB_DOCUMENT_NODE) || 2653aa9179Sopenharmony_ci+#endif 2753aa9179Sopenharmony_ci+ (cur->type == XML_HTML_DOCUMENT_NODE)) { 2853aa9179Sopenharmony_ci+ xmlFreeDoc((xmlDocPtr) cur); 2953aa9179Sopenharmony_ci+ } else { 3053aa9179Sopenharmony_ci+ if ((cur->name != NULL) && 3153aa9179Sopenharmony_ci+ (cur->type != XML_TEXT_NODE) && 3253aa9179Sopenharmony_ci+ (cur->type != XML_COMMENT_NODE)) 3353aa9179Sopenharmony_ci+ DICT_FREE(cur->name) 3453aa9179Sopenharmony_ci+ xmlFree(cur); 3553aa9179Sopenharmony_ci+ } 3653aa9179Sopenharmony_ci } 3753aa9179Sopenharmony_ci 3853aa9179Sopenharmony_ci if (next != NULL) { 3953aa9179Sopenharmony_ci-- 4053aa9179Sopenharmony_ci1.8.3.1 4153aa9179Sopenharmony_ci 42