From: William Lallemand Date: Thu, 5 Mar 2026 14:54:13 +0000 (+0100) Subject: MINOR: mworker: add a BUG_ON() on mproxy_li in _send_status X-Git-Tag: v3.4-dev7~118 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bd3983b5950c4172ee4ad1643711cd45f3637428;p=thirdparty%2Fhaproxy.git MINOR: mworker: add a BUG_ON() on mproxy_li in _send_status mproxy_li is supposed to be used in _send_status to stop the sockpair FD between the master and the new worker, being a listener. This can only work if the listener has been stored in the fdtab owner, and there's no reason it shouldn't be here. --- diff --git a/src/cli.c b/src/cli.c index 55a514d09..ee53961f0 100644 --- a/src/cli.c +++ b/src/cli.c @@ -2628,7 +2628,14 @@ static int _send_status(char **args, char *payload, struct appctx *appctx, void /* update status of the new worker */ if (proc->pid == pid) { proc->options &= ~PROC_O_INIT; + /* the sockpair between the master and the worker is + * used temporarly as a listener to receive + * _send_status. Once it is received we don't want to + * use this FD as a listener anymore, but only as a + * server, to allow only connections from the master to + * the worker for the master CLI */ mproxy_li = fdtab[proc->ipc_fd[0]].owner; + BUG_ON(mproxy_li == NULL); stop_listener(mproxy_li, 0, 0, 0); } /* send TERM to workers, which have exceeded max_reloads counter */