From e886dd5c32aa1bc99acf48c5bb1826f80d96923d Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Fri, 18 Jun 2021 09:05:49 +0200 Subject: [PATCH] BUG/MINOR: resolvers: Use resolver's lock in resolv_srvrq_expire_task() The commit dcac41806 ("BUG/MEDIUM: resolvers: Add a task on servers to check SRV resolution status") introduced a type. In resolv_srvrq_expire_task() function, the resolver's lock must be used instead of the resolver itself. This patch must be backported with the patch above (at least as far as 2.2). --- src/resolvers.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/resolvers.c b/src/resolvers.c index a068137ff..c05d2c5b6 100644 --- a/src/resolvers.c +++ b/src/resolvers.c @@ -609,9 +609,9 @@ static struct task *resolv_srvrq_expire_task(struct task *t, void *context, unsi if (!tick_is_expired(t->expire, now_ms)) goto end; - HA_SPIN_LOCK(DNS_LOCK, &srv->srvrq->resolvers); + HA_SPIN_LOCK(DNS_LOCK, &srv->srvrq->resolvers->lock); resolv_srvrq_cleanup_srv(srv); - HA_SPIN_UNLOCK(DNS_LOCK, &srv->srvrq->resolvers); + HA_SPIN_UNLOCK(DNS_LOCK, &srv->srvrq->resolvers->lock); end: return t;