Apply the following.  It should work

diff --git a/bin/named/controlconf.c b/bin/named/controlconf.c
index f360d02..8a3d3b0 100644
--- a/bin/named/controlconf.c
+++ b/bin/named/controlconf.c
@@ -373,8 +373,10 @@ control_recvmessage(isc_task_t *task, isc_event_t *event) {
                if (result == ISC_R_SUCCESS)
                        break;
                isc_mem_put(listener->mctx, secret.rstart, REGION_SIZE(secret));
-               log_invalid(&conn->ccmsg, result);
-               goto cleanup;
+               if (result != ISCCC_R_BADAUTH) {
+                       log_invalid(&conn->ccmsg, result);
+                       goto cleanup;
+               }
        }
 
        if (key == NULL) {
diff --git a/lib/isccc/cc.c b/lib/isccc/cc.c
index b549d6c..1ab9479 100644
--- a/lib/isccc/cc.c
+++ b/lib/isccc/cc.c
@@ -399,8 +399,6 @@ table_fromwire(isccc_region_t *source, isccc_region_t 
*secret,
                first_tag = ISC_FALSE;
        }
 
-       *alistp = alist;
-
        if (secret != NULL) {
                if (checksum_rstart != NULL)
                        result = verify(alist, checksum_rstart,
@@ -412,7 +410,9 @@ table_fromwire(isccc_region_t *source, isccc_region_t 
*secret,
                result = ISC_R_SUCCESS;
 
  bad:
-       if (result != ISC_R_SUCCESS)
+       if (result == ISC_R_SUCCESS)
+               *alistp = alist;
+       else
                isccc_sexpr_free(&alist);
 
        return (result);
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: ma...@isc.org
_______________________________________________
Please visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe 
from this list

bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users

Reply via email to