From fad6e8da4ac42bc99e6909a734e7e78fb7b29566 Mon Sep 17 00:00:00 2001 From: Pavel Boldin Date: Sun, 12 May 2013 14:53:53 +0400 Subject: [PATCH] Bind: More careful check for non-zone data. Check if RR ends with domain name. --- pdns/backends/bind/bindbackend2.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) 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) { -- 2.47.2