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; }