From: Willy Tarreau Date: Wed, 11 Mar 2026 14:14:43 +0000 (+0100) Subject: BUG/MINOR: memprof: avoid a small memory leak in "show profiling" X-Git-Tag: v3.4-dev7~75 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ed44adc3ca3ca24aebe213d2d4aba22205e5ecea;p=thirdparty%2Fhaproxy.git BUG/MINOR: memprof: avoid a small memory leak in "show profiling" In 3.1, per-DSO statistics were added to the memprofile output by commit 401fb0e87a ("MINOR: activity/memprofile: show per-DSO stats"). However an strdup() is performed there on the .info field, that is never freed when leaving the function. Let's do it each time we leave it. Ironically, this was found thanks to "show profiling" showing itself as an unbalanced caller of strdup(). This needs to be backported to 3.0 since that commit was backported there. --- diff --git a/src/activity.c b/src/activity.c index 0c1ce9e6b..fe6a5916c 100644 --- a/src/activity.c +++ b/src/activity.c @@ -1309,6 +1309,10 @@ static int cli_io_handler_show_profiling(struct appctx *appctx) tot_alloc_calls - tot_free_calls, tot_alloc_bytes - tot_free_bytes); + /* release optional buffer name */ + for (i = 0; i < max; i++) + ha_free(&tmp_memstats[i].info); + if (applet_putchk(appctx, &trash) == -1) return 0;