From: Grigorii Demidov Date: Tue, 4 Apr 2017 09:02:44 +0000 (+0200) Subject: layer/iterate: name comparison has been missed; comment X-Git-Tag: v1.2.5~6^2~2^2~2^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=22146cff8e7a284239312dde4ceb56338b23cdac;p=thirdparty%2Fknot-resolver.git layer/iterate: name comparison has been missed; comment --- diff --git a/lib/layer/iterate.c b/lib/layer/iterate.c index 5a6047250..cc78631d7 100644 --- a/lib/layer/iterate.c +++ b/lib/layer/iterate.c @@ -330,7 +330,11 @@ static int process_authority(knot_pkt_t *pkt, struct kr_request *req) if (rr->type == KNOT_RRTYPE_CNAME) { return KR_STATE_CONSUME; } - if (knot_wire_get_aa(pkt->wire) && (rr->type == qry->stype)) { + /* Work around for these NSs which are authoritative both for + * parent and child and mixes data from both zones in single answer */ + if (knot_wire_get_aa(pkt->wire) && + (rr->type == qry->stype) && + (knot_dname_is_equal(rr->owner, qry->sname))) { return KR_STATE_CONSUME; } }