]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: cli/server: Don't crash when a server is added with a custom id
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 7 Dec 2021 17:49:44 +0000 (18:49 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 7 Dec 2021 18:04:33 +0000 (19:04 +0100)
When a server is dynamically added via the CLI with a custom id, the key
used to insert it in the backend's tree of used names is not initialized.
The server id must be used but it is only used when no custom id is
provided. Thus, with a custom id, HAProxy crashes.

Now, the server id is always used to init this key, to be able to insert the
server in the corresponding tree.

This patch should fix the issue #1481. It must be backported as far as 2.4.

src/server.c

index 47bd38bc0657efe8ebeb30c0aa52c7da413f062a..4f75dff5a129e2a5954d1d3a20531caf31fb19ea 100644 (file)
@@ -4829,8 +4829,8 @@ static int cli_parse_add_server(char **args, char *payload, struct appctx *appct
                }
 
                srv->conf.id.key = srv->puid = next_id;
-               srv->conf.name.key = srv->id;
        }
+       srv->conf.name.key = srv->id;
 
        /* insert the server in the backend trees */
        eb32_insert(&be->conf.used_server_id, &srv->conf.id);