From: Pavel Boldin Date: Sun, 12 May 2013 10:53:53 +0000 (+0400) Subject: Bind: More careful check for non-zone data. X-Git-Tag: rec-3.6.0-rc1~457^2~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fad6e8da4ac42bc99e6909a734e7e78fb7b29566;p=thirdparty%2Fpdns.git Bind: More careful check for non-zone data. Check if RR ends with domain name. --- diff --git a/pdns/backends/bind/bindbackend2.cc b/pdns/backends/bind/bindbackend2.cc index a342660bad..26d5f6d57d 100644 --- a/pdns/backends/bind/bindbackend2.cc +++ b/pdns/backends/bind/bindbackend2.cc @@ -418,13 +418,12 @@ void Bind2Backend::insert(shared_ptr stage, int id, const string &qnameu, recordstorage_t& records=*bb2.d_records; - bdr.qname=toLower(canonic(qnameu)); + bdr.qname=canonic(qnameu); + //cerr << "qname = " << bdr.qname << ", d_name = " << bb2.d_name << endl; if(bb2.d_name.empty()) ; - else if(bdr.qname==toLower(bb2.d_name)) - bdr.qname.clear(); - 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 if(dottedEndsOn(bdr.qname, bb2.d_name)) + bdr.qname.resize(max(0, bdr.qname.length() - (bb2.d_name.length() + 1))); else { string msg = "Trying to insert non-zone data, name='"+bdr.qname+"', qtype="+qtype.getName()+", zone='"+bb2.d_name+"'"; if(ignore_non_zone) {