153aa9179Sopenharmony_ciFrom 1a2d8ddc066143d256fdb8cc554707fe141dd2f6 Mon Sep 17 00:00:00 2001 253aa9179Sopenharmony_ciFrom: Nick Wellnhofer <wellnhofer@aevum.de> 353aa9179Sopenharmony_ciDate: Tue, 11 Oct 2022 13:02:47 +0200 453aa9179Sopenharmony_ciSubject: [PATCH] parser: Fix potential memory leak in xmlParseAttValueInternal 553aa9179Sopenharmony_ci 653aa9179Sopenharmony_ciFix memory leak in case xmlParseAttValueInternal is called with a NULL 753aa9179Sopenharmony_ci`len` a non-NULL `alloc` argument. This static function is never called 853aa9179Sopenharmony_ciwith such arguments internally, but the misleading code should be fixed 953aa9179Sopenharmony_cinevertheless. 1053aa9179Sopenharmony_ci 1153aa9179Sopenharmony_ciFixes #422. 1253aa9179Sopenharmony_ci 1353aa9179Sopenharmony_ciReference:https://github.com/GNOME/libxml2/commit/1a2d8ddc066143d256fdb8cc554707fe141dd2f6 1453aa9179Sopenharmony_ciConflict:NA 1553aa9179Sopenharmony_ci 1653aa9179Sopenharmony_ci--- 1753aa9179Sopenharmony_ci parser.c | 2 +- 1853aa9179Sopenharmony_ci 1 file changed, 1 insertion(+), 1 deletion(-) 1953aa9179Sopenharmony_ci 2053aa9179Sopenharmony_cidiff --git a/parser.c b/parser.c 2153aa9179Sopenharmony_ciindex 7bb47366..337e62f6 100644 2253aa9179Sopenharmony_ci--- a/parser.c 2353aa9179Sopenharmony_ci+++ b/parser.c 2453aa9179Sopenharmony_ci@@ -9155,6 +9155,7 @@ xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc, 2553aa9179Sopenharmony_ci in++; 2653aa9179Sopenharmony_ci col++; 2753aa9179Sopenharmony_ci if (len != NULL) { 2853aa9179Sopenharmony_ci+ if (alloc) *alloc = 0; 2953aa9179Sopenharmony_ci *len = last - start; 3053aa9179Sopenharmony_ci ret = (xmlChar *) start; 3153aa9179Sopenharmony_ci } else { 3253aa9179Sopenharmony_ci@@ -9164,7 +9165,6 @@ xmlParseAttValueInternal(xmlParserCtxtPtr ctxt, int *len, int *alloc, 3353aa9179Sopenharmony_ci CUR_PTR = in; 3453aa9179Sopenharmony_ci ctxt->input->line = line; 3553aa9179Sopenharmony_ci ctxt->input->col = col; 3653aa9179Sopenharmony_ci- if (alloc) *alloc = 0; 3753aa9179Sopenharmony_ci return ret; 3853aa9179Sopenharmony_ci need_complex: 3953aa9179Sopenharmony_ci if (alloc) *alloc = 1; 4053aa9179Sopenharmony_ci-- 4153aa9179Sopenharmony_ci2.27.0 4253aa9179Sopenharmony_ci 43