vars_deinit() frees all var_names during deinit().
---
 src/vars.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/vars.c b/src/vars.c
index fd95eed5d..c69a561fa 100644
--- a/src/vars.c
+++ b/src/vars.c
@@ -857,6 +857,15 @@ static int vars_max_size_check(char **args, int 
section_type, struct proxy *curp
        return vars_max_size(args, section_type, curpx, defpx, file, line, err, 
&var_check_limit);
 }
 
+static void vars_deinit()
+{
+       while (var_names_nb-- > 0)
+               free(var_names[var_names_nb]);
+       free(var_names);
+}
+
+REGISTER_POST_DEINIT(vars_deinit);
+
 static struct sample_fetch_kw_list sample_fetch_keywords = {ILH, {
 
        { "var", smp_fetch_var, ARG1(1,STR), smp_check_var, SMP_T_STR, 
SMP_USE_L4CLI },
-- 
2.27.0


Reply via email to