]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: proxy: fix null dereference in "add backend" handler
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 6 Feb 2026 20:28:42 +0000 (21:28 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 6 Feb 2026 20:35:12 +0000 (21:35 +0100)
When a backend is created at runtime, the new proxy instance is inserted
at the end of proxies_list. This operation is buggy if this list is
empty : the code causes a null dereference which will lead to a crash.
This causes the following compilation error :

  CC      src/proxy.o
src/proxy.c: In function 'cli_parse_add_backend':
src/proxy.c:4933:36: warning: null pointer dereference [-Wnull-dereference]
 4933 |                 proxies_list->next = px;
      |                 ~~~~~~~~~~~~~~~~~~~^~~~

This patch fixes this issue. Note that in reality it cannot occur at
this moment as proxies_list cannot be empty (haproxy requires at least
one frontend to start, and the list also always contains internal
proxies).

No need to backport.

src/proxy.c

index 15a82918743a9a4011d9739e6d86b0e3cfbbe59b..3529085ee7195e21c6e85ac4a904bbdd2abff63a 100644 (file)
@@ -4927,7 +4927,7 @@ static int cli_parse_add_backend(char **args, char *payload, struct appctx *appc
        dynpx_next_id = px->uuid;
 
        if (!proxies_list) {
-               proxies_list->next = px;
+               proxies_list = px;
        }
        else {
                for (next = proxies_list; next->next; next = next->next)