From 340cc86efb2e792da157bde2499ee09932acebe2 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 22 May 2026 08:49:17 +0000 Subject: [PATCH] BUG/MINOR: log: free logformat expr on compile failure in cfg_parse_log_profile When lf_expr_compile() fails in cfg_parse_log_profile, the code leaves without freeing the previously strdup()'d strings in target_lf->str and target_lf->conf.file. Let's add a call to lf_expr_deinit() there to release it. It was harmless anyway since the startup will abort when this happens, but better clean it because with increasingly dynamic setups, one day it could become a runtime leak. No backport is needed. --- src/log.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/log.c b/src/log.c index c8f85695b..2a6f4c232 100644 --- a/src/log.c +++ b/src/log.c @@ -6743,6 +6743,7 @@ int cfg_parse_log_profile(const char *file, int linenum, char **args, int kwm) SMP_VAL_FE_LOG_END, &errmsg)) { ha_alert("Parsing [%s:%d]: failed to parse logformat: %s.\n", file, linenum, errmsg); + lf_expr_deinit(target_lf); err_code |= ERR_ALERT | ERR_FATAL; goto out; }