This allocation is technically always reachable and cannot leak, but so are
a few others that *are* freed.
---
src/haproxy.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/haproxy.c b/src/haproxy.c
index 64d7e0eea..70d442c40 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -2603,7 +2603,7 @@ void deinit(void)
struct logformat_node *lf, *lfb;
struct bind_conf *bind_conf, *bind_back;
struct build_opts_str *bol, *bolb;
- struct post_deinit_fct *pdf;
+ struct post_deinit_fct *pdf, *pdfb;
struct proxy_deinit_fct *pxdf, *pxdfb;
struct server_deinit_fct *srvdf;
@@ -2896,6 +2896,11 @@ void deinit(void)
free(pxdf);
}
+ list_for_each_entry_safe(pdf, pdfb, &post_deinit_list, list) {
+ LIST_DEL(&pdf->list);
+ free(pdf);
+ }
+
vars_prune(&global.vars, NULL, NULL);
pool_destroy_all();
deinit_pollers();
--
2.27.0