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