From ed44adc3ca3ca24aebe213d2d4aba22205e5ecea Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Wed, 11 Mar 2026 15:14:43 +0100 Subject: [PATCH] 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. --- src/activity.c | 4 ++++ 1 file changed, 4 insertions(+) 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;