]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Only warn if we could not delete signature
authorMatthijs Mekking <matthijs@isc.org>
Fri, 3 Dec 2021 15:18:13 +0000 (16:18 +0100)
committerMatthijs Mekking <matthijs@isc.org>
Thu, 6 Jan 2022 08:32:32 +0000 (09:32 +0100)
BIND can log this warning:

    zone example.ch/IN (signed): Key example.ch/ECDSAP256SHA256/56340
      missing or inactive and has no replacement: retaining signatures.

This log can happen when BIND tries to remove signatures because the
are about to expire or to be resigned. These RRsets may be signed with
the KSK if the ZSK files has been removed from disk. When we have
created a new ZSK we can replace the signatures creeated by the KSK
with signatures from the new ZSK.

It complains about the KSK being missing or inactive, but actually it
takes the key id from the RRSIG.

The warning is logged if BIND detects the private ZSK file is missing.

The warning is logged even if we were able to delete the signature.

With the change from this commit it only logs this warning if it is not
okay to delete the signature.

lib/dns/zone.c

index 4c796351936005ec4c50b5cea9505367c28b9d2d..be02dbea29ecfbbe4dd813b036a19b11d1a53c79 100644 (file)
@@ -6909,7 +6909,7 @@ del_sigs(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
                                }
                                deleted = true;
                        }
-                       if (warn) {
+                       if (warn && !deleted) {
                                /*
                                 * At this point, we've got an RRSIG,
                                 * which is signed by an inactive key.
@@ -6919,7 +6919,7 @@ del_sigs(dns_zone_t *zone, dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,
                                 * offline will prevent us spinning waiting
                                 * for the private part.
                                 */
-                               if (incremental && !deleted) {
+                               if (incremental) {
                                        result = offline(db, ver, zonediff,
                                                         name, rdataset.ttl,
                                                         &rdata);