From 01f0f9dcdc4dc12739ce9787142b04c6880d8673 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Fri, 30 Sep 2022 10:52:14 +0200 Subject: [PATCH] Don't stop timer from dns__nta_shutdown() The dns__nta_shutdown() could be run from different threads and it was accessing nta->timer unlocked. Don't check and stop the timer from dns__nta_shutdown() directly, but leave it for the async callback. --- lib/dns/nta.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/dns/nta.c b/lib/dns/nta.c index 1b80f1cbdb..1d141ea27c 100644 --- a/lib/dns/nta.c +++ b/lib/dns/nta.c @@ -645,7 +645,7 @@ dns__nta_shutdown_cb(dns__nta_t *nta) { REQUIRE(VALID_NTA(nta)); if (nta->timer) { - isc_timer_stop(nta->timer); /* This is superfluous */ + isc_timer_stop(nta->timer); isc_timer_destroy(&nta->timer); } @@ -656,10 +656,6 @@ static void dns__nta_shutdown(dns__nta_t *nta) { REQUIRE(VALID_NTA(nta)); - if (nta->timer != NULL) { - isc_timer_stop(nta->timer); - } - dns__nta_ref(nta); isc_async_run(nta->loop, (isc_job_cb)dns__nta_shutdown_cb, nta); }