From 99f95bd3c93da9e185938b9aeed633b6f960f8c9 Mon Sep 17 00:00:00 2001 From: Peter van Dijk Date: Mon, 10 Jun 2013 16:11:41 +0200 Subject: [PATCH] correctly refuse out-of-zone data in bindbackend, closes #845 --- pdns/backends/bind/bindbackend2.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pdns/backends/bind/bindbackend2.cc b/pdns/backends/bind/bindbackend2.cc index a428f38ecc..07e2f1c238 100644 --- a/pdns/backends/bind/bindbackend2.cc +++ b/pdns/backends/bind/bindbackend2.cc @@ -423,7 +423,7 @@ void Bind2Backend::insert(shared_ptr stage, int id, const string &qnameu, ; else if(bdr.qname==toLower(bb2.d_name)) bdr.qname.clear(); - else if(bdr.qname.length() > bb2.d_name.length()) + else if(bdr.qname.length() > bb2.d_name.length() && dottedEndsOn(bdr.qname, bb2.d_name)) bdr.qname.resize(bdr.qname.length() - (bb2.d_name.length() + 1)); else throw AhuException("Trying to insert non-zone data, name='"+bdr.qname+"', qtype="+qtype.getName()+", zone='"+bb2.d_name+"'"); @@ -715,7 +715,7 @@ void Bind2Backend::loadConfig(string* status) staging->name_id_map[i->name]=bbd->d_id; // fill out name -> id map // overwrite what we knew about the domain - bbd->d_name=i->name; + bbd->d_name=toLower(canonic(i->name)); bool filenameChanged = (bbd->d_filename!=i->filename); bbd->d_filename=i->filename; -- 2.47.3