From cde1bc64cbdb76a04ecea8e2da74437498301275 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 28 Oct 2018 20:36:00 +0100 Subject: [PATCH] BUG/MINOR: backend: assign the wait list after the error check Commit 85b73e9 ("BUG/MEDIUM: stream: Make sure polling is right on retry.") introduced a possible null dereference on the error path detected by gcc-7. Let's simply assign srv_conn after checking the error and not before. No backport is needed. --- src/backend.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/backend.c b/src/backend.c index 834caec1f..4d75df6fe 100644 --- a/src/backend.c +++ b/src/backend.c @@ -1167,12 +1167,13 @@ int connect_server(struct stream *s) LIST_DEL(&srv_conn->list); LIST_INIT(&srv_conn->list); } - srv_conn->send_wait = send_wait; - srv_conn->recv_wait = recv_wait; if (!srv_cs) return SF_ERR_RESOURCE; + srv_conn->send_wait = send_wait; + srv_conn->recv_wait = recv_wait; + if (!(s->flags & SF_ADDR_SET)) { err = assign_server_address(s); if (err != SRV_STATUS_OK)