diff --git a/CHANGES b/CHANGES index e74de54e21..08f71da2e7 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +6169. [bug] named could crash when deleting inline-signing zones + with "rndc delzone". [GL #4054] + 6168. [func] Refactor the glue cache to store list of the GLUE directly in the rdatasetheader instead of keeping it in the hashtable indexed by the node pointer. diff --git a/lib/dns/zone.c b/lib/dns/zone.c index d943295588..7481d3b12f 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -6825,8 +6825,14 @@ zone_resigninc(dns_zone_t *zone) { } ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read); - dns_db_attach(zone->db, &db); + if (zone->db != NULL) { + dns_db_attach(zone->db, &db); + } ZONEDB_UNLOCK(&zone->dblock, isc_rwlocktype_read); + if (db == NULL) { + result = ISC_R_FAILURE; + goto failure; + } result = dns_db_newversion(db, &version); if (result != ISC_R_SUCCESS) {