From 7a3101af7e5de7fb341e871ad8a0d3f131523f75 Mon Sep 17 00:00:00 2001 From: Amaury Denoyelle Date: Wed, 6 Jan 2021 14:28:50 +0100 Subject: [PATCH] BUG/MINOR: srv: do not init address if backend is disabled Do not proceed on init_addr if the backend of the server is marked as disabled. When marked as disabled, the server is not fully initialized and some operation must be avoided to prevent segfault. It is correct because there is no way to activate a disabled backend. This fixes the github issue #1031. This should be backported to 2.2. (cherry picked from commit e3c419296211f08209300b9a06dc17467a6cb315) Signed-off-by: Christopher Faulet (cherry picked from commit 96a4ff137c88294b1d12bcb0d76f18bc1f2b41a6) [cf: In fact this one should be backported in all stable versions] Signed-off-by: Christopher Faulet (cherry picked from commit 94c6b618d2aa64587c39cd201d6336516910ce8f) Signed-off-by: Christopher Faulet --- src/server.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server.c b/src/server.c index 25f30ce..801bb82 100644 --- a/src/server.c +++ b/src/server.c @@ -4439,7 +4439,7 @@ int srv_init_addr(void) struct server *srv; /* servers are in backend only */ - if (!(curproxy->cap & PR_CAP_BE)) + if (!(curproxy->cap & PR_CAP_BE) || curproxy->state == PR_STSTOPPED) goto srv_init_addr_next; for (srv = curproxy->srv; srv; srv = srv->next) -- 1.7.10.4