From: Willy Tarreau Date: Sun, 26 Apr 2026 20:48:17 +0000 (+0200) Subject: BUG/MINOR: tools: free previously allocated strings on strdup failure in backup_env() X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=eb97e21a8f0d4f01bbcaeeacae2c1266def4b4cb;p=thirdparty%2Fhaproxy.git BUG/MINOR: tools: free previously allocated strings on strdup failure in backup_env() When strdup() fails after some entries have already been strdup'd, the function returned -1 without freeing previously allocated strings. Added cleanup loop to free all previously strdup'd entries and reset init_env. This can be backported to 3.1. --- diff --git a/src/tools.c b/src/tools.c index cdd9cbe5f..741622fa6 100644 --- a/src/tools.c +++ b/src/tools.c @@ -7562,6 +7562,13 @@ int backup_env(void) if (*tmp == NULL) { ha_alert("Cannot allocate memory to backup env variable '%s'.\n", *env); + tmp = init_env; + while (*tmp) { + free(*tmp); + tmp++; + } + free(init_env); + init_env = NULL; return -1; } tmp++;