From: Aurelien DARRAGON Date: Tue, 13 Jan 2026 18:37:54 +0000 (+0100) Subject: MINOR: cli: use srv_drop() when server was created using new_server() X-Git-Tag: v3.4-dev3~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12dc9325a7502f51d1e7f056497893f5330a7a5e;p=thirdparty%2Fhaproxy.git MINOR: cli: use srv_drop() when server was created using new_server() Now that new_server() is becoming more and more complex, we need to take care that servers created using new_server() must be released using the corresponding release function srv_drop() which takes care of properly de-initing the server and its members. --- diff --git a/src/cli.c b/src/cli.c index 09494c718..ebf47cea7 100644 --- a/src/cli.c +++ b/src/cli.c @@ -3737,11 +3737,8 @@ int mworker_cli_attach_server(char **errmsg) error: - list_for_each_entry(child, &proc_list, list) { - free((char *)child->srv->conf.file); /* cast because of const char * */ - free(child->srv->id); - srv_free(&child->srv); - } + list_for_each_entry(child, &proc_list, list) + srv_drop(child->srv); free(msg); return -1; diff --git a/src/server.c b/src/server.c index 024b03244..a86047fdf 100644 --- a/src/server.c +++ b/src/server.c @@ -3434,7 +3434,7 @@ static int _srv_parse_tmpl_init(struct server *srv, struct proxy *px) free_check(&newsrv->check); MT_LIST_DELETE(&newsrv->global_list); } - srv_free(&newsrv); + srv_drop(newsrv); return i - srv->tmpl_info.nb_low; }