From b3c6ee7b9a5df02fc2ccd516cd14752b410877c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Wed, 3 May 2023 08:15:31 +0200 Subject: [PATCH] Fix a logical flaw that would skip logging notify success The notify_done() would never log a success as the logging part was always skipped. Fix the code flow in the function. --- lib/dns/zone.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/dns/zone.c b/lib/dns/zone.c index 05d7d6c1fd..a7c009678b 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -15802,17 +15802,14 @@ notify_done(void *arg) { (int)buf.used, rcode); } - dns_message_detach(&message); - goto done; - fail: dns_message_detach(&message); if (result == ISC_R_SUCCESS) { - notify_log(notify->zone, ISC_LOG_INFO, + notify_log(notify->zone, ISC_LOG_DEBUG(1), "notify to %s successful", addrbuf); } else if (result == ISC_R_SHUTTINGDOWN || result == ISC_R_CANCELED) { - goto done; + /* just destroy the notify */ } else if ((notify->flags & DNS_NOTIFY_TCP) == 0) { notify_log(notify->zone, ISC_LOG_NOTICE, "notify to %s failed: %s: retrying over TCP", @@ -15830,7 +15827,6 @@ fail: "notify to %s failed: %s", addrbuf, isc_result_totext(result)); } -done: notify_destroy(notify, false); }