From: Christopher Faulet Date: Mon, 27 Apr 2020 09:22:56 +0000 (+0200) Subject: BUG/MEDIUM: checks: unsubscribe for events on the old conn-stream on connect X-Git-Tag: v2.2-dev7~74 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=06150e4c73ec722db694593d1cc7490ac7846b13;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: checks: unsubscribe for events on the old conn-stream on connect When a new connection is established, if an old connection is still attached to the current check, it must be detroyed. When it happens, the old conn-stream must be used to unsubscribe for events, not the new one. No backport is needed. --- diff --git a/src/checks.c b/src/checks.c index 15966c8131..efc9ce2295 100644 --- a/src/checks.c +++ b/src/checks.c @@ -1660,7 +1660,8 @@ static enum tcpcheck_eval_ret tcpcheck_eval_connect(struct check *check, struct /* 3- release and replace the old one on success */ if (check->cs) { if (check->wait_list.events) - cs->conn->mux->unsubscribe(cs, check->wait_list.events, &check->wait_list); + check->cs->conn->mux->unsubscribe(check->cs, check->wait_list.events, + &check->wait_list); /* We may have been scheduled to run, and the I/O handler * expects to have a cs, so remove the tasklet