From: Willy Tarreau Date: Mon, 27 Apr 2026 12:30:45 +0000 (+0200) Subject: BUG/MINOR: peers: fix logical "and" when checking for local in PEER_APP_ST_STARTING X-Git-Tag: v3.4-dev10~39 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=24914b67b723fae4519308aa9238cdb94dd3bfe2;p=thirdparty%2Fhaproxy.git BUG/MINOR: peers: fix logical "and" when checking for local in PEER_APP_ST_STARTING The expression to check both peer->local and appctx_is_back() uses a bitwise '&' instead of a logical '&&'. Fortunately both values are always either 0 or 1 so there is no impact. This can be backported to all stable versions. --- diff --git a/src/peers.c b/src/peers.c index 2390880bb..855aaa948 100644 --- a/src/peers.c +++ b/src/peers.c @@ -3571,7 +3571,7 @@ static void sync_peer_app_state(struct peers *peers, struct peer *peer) } else if (peer->appstate == PEER_APP_ST_STARTING) { clear_peer_learning_status(peer); - if (peer->local & appctx_is_back(peer->appctx)) { + if (peer->local && appctx_is_back(peer->appctx)) { /* if local peer has accepted the connection (appctx is * on the backend side), flag it to learn a lesson and * be sure it will start immediately. This only happens