BUG/MINOR: cfgparse-tcp: leak when re-declaring interface from bind line

When interface keyword is used multiple times within the same bind line,
the previous value isn't checked and is rewritten as-is, resulting in a
small memory leak.

Ensuring the interface name is first freed before assigning it to a new
value.

This may be backported to every stable versions.

[Note for 2.2, the fix must be performed in bind_parse_interface() from
proto_tcp.c, directly within the listener's loop, also ha_free() was
not available so free() must be used instead]
This commit is contained in:
Aurelien DARRAGON 2023-06-01 09:57:15 +02:00 committed by Christopher Faulet
parent 1bdd490f9f
commit c49224a29d
1 changed files with 1 additions and 0 deletions

View File

@ -142,6 +142,7 @@ static int bind_parse_interface(char **args, int cur_arg, struct proxy *px, stru
return ERR_ALERT | ERR_FATAL;
}
ha_free(&conf->settings.interface);
conf->settings.interface = strdup(args[cur_arg + 1]);
return 0;
}