153aa9179Sopenharmony_ciFrom d18f9c1102a45b401039dd899ce7069da7a73124 Mon Sep 17 00:00:00 2001 253aa9179Sopenharmony_ciFrom: Nick Wellnhofer <wellnhofer@aevum.de> 353aa9179Sopenharmony_ciDate: Tue, 14 Feb 2023 13:50:46 +0100 453aa9179Sopenharmony_ciSubject: [PATCH] malloc-fail: Fix leak of xmlCharEncodingHandler 553aa9179Sopenharmony_ci 653aa9179Sopenharmony_ciAlso free handler if its name is NULL. 753aa9179Sopenharmony_ci 853aa9179Sopenharmony_ciFound with libFuzzer, see #344. 953aa9179Sopenharmony_ci 1053aa9179Sopenharmony_ciReference:https://github.com/GNOME/libxml2/commit/d18f9c1102a45b401039dd899ce7069da7a73124 1153aa9179Sopenharmony_ciConflict:encoding.c 1253aa9179Sopenharmony_ci 1353aa9179Sopenharmony_ci--- 1453aa9179Sopenharmony_ci encoding.c | 1 - 1553aa9179Sopenharmony_ci 1 file changed, 1 deletion(-) 1653aa9179Sopenharmony_ci 1753aa9179Sopenharmony_cidiff --git a/encoding.c b/encoding.c 1853aa9179Sopenharmony_ciindex 400e860..8b98f7d 100644 1953aa9179Sopenharmony_ci--- a/encoding.c 2053aa9179Sopenharmony_ci+++ b/encoding.c 2153aa9179Sopenharmony_ci@@ -2792,7 +2792,6 @@ xmlCharEncCloseFunc(xmlCharEncodingHandler *handler) { 2253aa9179Sopenharmony_ci int i, handler_in_list = 0; 2353aa9179Sopenharmony_ci 2453aa9179Sopenharmony_ci if (handler == NULL) return(-1); 2553aa9179Sopenharmony_ci- if (handler->name == NULL) return(-1); 2653aa9179Sopenharmony_ci if (handlers != NULL) { 2753aa9179Sopenharmony_ci for (i = 0;i < nbCharEncodingHandler; i++) { 2853aa9179Sopenharmony_ci if (handler == handlers[i]) { 2953aa9179Sopenharmony_ci-- 3053aa9179Sopenharmony_ci2.27.0 3153aa9179Sopenharmony_ci 32