From 24914b67b723fae4519308aa9238cdb94dd3bfe2 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 27 Apr 2026 14:30:45 +0200 Subject: [PATCH] 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. --- src/peers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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