This allocation is technically always reachable and cannot leak, but so are
a few others that *are* freed.
---
 src/haproxy.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/haproxy.c b/src/haproxy.c
index 663922e72..b01707096 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -2403,6 +2403,7 @@ void deinit(void)
        struct proxy_deinit_fct *pxdf, *pxdfb;
        struct server_deinit_fct *srvdf, *srvdfb;
        struct post_server_check_fct *pscf, *pscfb;
+       struct post_proxy_check_fct *ppcf, *ppcfb;
 
        deinit_signals();
        while (p) {
@@ -2722,6 +2723,11 @@ void deinit(void)
                free(pscf);
        }
 
+       list_for_each_entry_safe(ppcf, ppcfb, &post_proxy_check_list, list) {
+               LIST_DEL(&ppcf->list);
+               free(ppcf);
+       }
+
        vars_prune(&global.vars, NULL, NULL);
        pool_destroy_all();
        deinit_pollers();
-- 
2.28.0


Reply via email to