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.
This commit is contained in:
Willy Tarreau 2026-04-26 22:48:17 +02:00
parent d5efce7a13
commit eb97e21a8f

View File

@ -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++;