From e260e0df443b00d991e430515a6879bb186b3454 Mon Sep 17 00:00:00 2001 From: William Lallemand Date: Thu, 8 Nov 2018 12:00:14 +0100 Subject: [PATCH] BUG/MEDIUM: cli: crash when trying to access a worker When using the CLI proxy of the master and trying to access a worker with the @ prefix, the worker just crash. The commit 7216032 ("MEDIUM: mworker: leave when the master die") reintroduced the old code of the pipe, which was not trying to access the pointers before. The owner of the FD was modified to a different value, this is a problem since we call listener_accept() in most cases now from the mworker_accept_wrapper() and it casts the owner variable to get the listener. This patch fix the issue by setting back the previous owner of the FD. --- src/haproxy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/haproxy.c b/src/haproxy.c index 96e39be8b..1d2971d4b 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -2592,7 +2592,7 @@ void mworker_pipe_register() /* In multi-tread, we need only one thread to process * events on the pipe with master */ - fd_insert(proc_self->ipc_fd[1], proc_self->ipc_fd, mworker_accept_wrapper, 1); + fd_insert(proc_self->ipc_fd[1], fdtab[proc_self->ipc_fd[1]].owner, mworker_accept_wrapper, 1); fd_want_recv(proc_self->ipc_fd[1]); }