]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: resolvers: Reset address for unresolved servers
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 23 Feb 2021 11:33:17 +0000 (12:33 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 24 Feb 2021 20:58:46 +0000 (21:58 +0100)
If the DNS resolution failed for a server, its ip address must be
removed. Otherwise, the server is stopped but keeps its ip. This may be
confusing when the servers state are retrieved on the CLI and it may lead to
undefined behavior if HAproxy is configured to load its servers state from a
file.

This patch should be backported as far as 2.0.

src/server.c

index bb6a57b09bb3c92cacf15cfe9192443815e6e517..bc38b7704bef33e46bc8e2aed38f92894b1f51e1 100644 (file)
@@ -4162,6 +4162,7 @@ int snr_resolution_error_cb(struct resolv_requester *requester, int error_code)
                return 1;
        HA_SPIN_LOCK(SERVER_LOCK, &s->lock);
        snr_update_srv_status(s, 0);
+       memset(&s->addr, 0, sizeof(s->addr));
        HA_SPIN_UNLOCK(SERVER_LOCK, &s->lock);
        return 1;
 }