From 9b38be40e9d02f3eb9dc90e3069e95aaea8164e1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ivana=20Krumlov=C3=A1?= Date: Thu, 4 Jul 2019 17:06:02 +0200 Subject: [PATCH] prefill: check correct origin attribute name of SOA record must be "." --- daemon/zimport.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/daemon/zimport.c b/daemon/zimport.c index 5bcc54c54..cf1021efd 100644 --- a/daemon/zimport.c +++ b/daemon/zimport.c @@ -687,14 +687,9 @@ static int zi_state_parsing(zs_scanner_t *s) } zone_import_ctx_t *z_import = (zone_import_ctx_t *) s->process.data; empty = false; - if (z_import->origin == 0) { - z_import->origin = knot_dname_copy(s->zone_origin, - &z_import->pool); - } else if (!knot_dname_is_equal(z_import->origin, s->zone_origin)) { - kr_log_error("[zscanner] line: %"PRIu64 - ": zone origin changed unexpectedly\n", - s->line_counter); - return -1; + if (s->r_type == 6) { + z_import->origin = knot_dname_copy(s->r_owner, + &z_import->pool); } break; case ZS_STATE_ERROR: @@ -714,6 +709,10 @@ static int zi_state_parsing(zs_scanner_t *s) kr_log_error("[zimport] empty zone file\n"); return -1; } + if (!((zone_import_ctx_t *) s->process.data)->origin) { + kr_log_error("[zimport] zone file doesn't contain SOA record\n"); + return -1; + } return (s->error.counter == 0) ? 0 : -1; default: kr_log_error("[zscanner] line: %"PRIu64 -- 2.47.2