From: Amaury Denoyelle Date: Wed, 9 Jun 2021 14:00:43 +0000 (+0200) Subject: BUG/MEDIUM: server: clear dynamic srv on delete from proxy id/name trees X-Git-Tag: v2.5-dev1~130 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=82d7f774639a5eb4424d53bb396ee18634cdc6fc;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: server: clear dynamic srv on delete from proxy id/name trees Do not leave deleted server in used_server_id/used_server_addr backend trees. This might lead to crashes if a deleted server is used through these trees. At this moment, dynamic servers are only added in used_server_id if they have a fixed id. They are never inserted in used_server_addr as this code is missing. So these new delete instructions are noop. However, a fix will be provided soon to insert properly all dynamic servers in both used_server_id and used_server_addr trees so the deletion counterpart will be mandatory in the CLI server delete handler. This must be backported to 2.4. --- diff --git a/src/server.c b/src/server.c index 14f54857d5..20121bf42f 100644 --- a/src/server.c +++ b/src/server.c @@ -4574,6 +4574,8 @@ static int cli_parse_delete_server(char **args, char *payload, struct appctx *ap } /* remove srv from addr_node tree */ + eb32_delete(&srv->conf.id); + ebpt_delete(&srv->conf.name); ebpt_delete(&srv->addr_node); /* remove srv from idle_node tree for idle conn cleanup */