]> git.ipfire.org Git - thirdparty/bind9.git/commit
Fix a zone refresh bug in zone.c:refresh_callback()
authorAram Sargsyan <aram@isc.org>
Wed, 21 May 2025 14:44:50 +0000 (14:44 +0000)
committerOndřej Surý <ondrej@isc.org>
Wed, 28 May 2025 16:20:13 +0000 (16:20 +0000)
commit228e441328af8f3a54c1ae3f0cd7b871dab83609
tree74cf006e47cbf5a1061243d91460bfda75d8e114
parent08133582b0ae067d782fec7f60da17a2601e568c
Fix a zone refresh bug in zone.c:refresh_callback()

When the zone.c:refresh_callback() callback function is called during
a SOA request before a zone transfer, it can receive a
ISC_R_SHUTTINGDOWN result for the sent request when named is shutting
down, and in that case it just destroys the request and finishes the
ongoing transfer, without clearing the DNS_ZONEFLG_REFRESH flag of the
zone. This is alright when named is going to shutdown, but currently
the callback can get a ISC_R_SHUTTINGDOWN result also when named is
reconfigured during the ongoibg SOA request. In that case, leaving the
DNS_ZONEFLG_REFRESH flag set results in the zone never being able
to refresh again, because any new attempts will be caneled while
the flag is set. Clear the DNS_ZONEFLG_REFRESH flag on the 'exiting'
error path of the callback function.
lib/dns/zone.c