From: Willy Tarreau Date: Sun, 26 Apr 2026 21:00:57 +0000 (+0200) Subject: BUG/MINOR: tools: fix memory leak in indent_msg() on out of memory X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=d5efce7a130222385564bb5cda925f027539a9df;p=thirdparty%2Fhaproxy.git BUG/MINOR: tools: fix memory leak in indent_msg() on out of memory When malloc() fails in indent_msg, the function returned NULL without freeing the original *out string as it was supposed to. The caller loses both the original string (leaked) and gets NULL back. Fixed to free *out and set it to NULL before returning. --- diff --git a/src/tools.c b/src/tools.c index 7a48969ec..cdd9cbe5f 100644 --- a/src/tools.c +++ b/src/tools.c @@ -4744,7 +4744,8 @@ char *indent_msg(char **out, int level) needed = 1 + level * (lf + 1) + len + 1; p = ret = malloc(needed); if (unlikely(!ret)) - return NULL; + goto leave; + in = *out; /* skip initial LFs */ @@ -4764,6 +4765,7 @@ char *indent_msg(char **out, int level) } *p = 0; + leave: free(*out); *out = ret;