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.
This commit is contained in:
Ondřej Surý 2022-09-30 10:52:14 +02:00
parent 9beb68513b
commit 01f0f9dcdc
No known key found for this signature in database
GPG key ID: 2820F37E873DEA41

View file

@ -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);
}