From: Peter van Dijk Date: Mon, 10 Jun 2013 14:11:41 +0000 (+0200) Subject: correctly refuse out-of-zone data in bindbackend, closes #845 X-Git-Tag: rec-3.6.0-rc1~688^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=99f95bd3c93da9e185938b9aeed633b6f960f8c9;p=thirdparty%2Fpdns.git correctly refuse out-of-zone data in bindbackend, closes #845 --- 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;