isc_result_totext(result), nameb);
goto cleanup;
} else {
+ dns_catz_zone_t *parentcatz;
+
if (!dns_zone_getadded(zone)) {
isc_log_write(
named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
nameb);
goto cleanup;
}
- if (dns_zone_get_parentcatz(zone) != ev->origin) {
+
+ parentcatz = dns_zone_get_parentcatz(zone);
+
+ if (parentcatz == NULL) {
+ isc_log_write(
+ named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
+ NAMED_LOGMODULE_SERVER, ISC_LOG_WARNING,
+ "catz: catz_addmodzone_taskaction: "
+ "zone '%s' exists and is not added by "
+ "a catalog zone, so won't be modified",
+ nameb);
+ goto cleanup;
+ }
+ if (parentcatz != ev->origin) {
isc_log_write(
named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
NAMED_LOGMODULE_SERVER, ISC_LOG_WARNING,
nameb);
goto cleanup;
}
+
dns_zone_detach(&zone);
}
} else {