]> granicus.if.org Git - pdns/commitdiff
Make sure `labelsToAdd` is not empty in `getZoneCuts()`
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 16 Jan 2017 16:53:06 +0000 (17:53 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 16 Feb 2017 16:01:52 +0000 (17:01 +0100)
(cherry picked from commit e2f91e7051975a411445ebd54a2a124c78a7d8ff)

pdns/validate.cc

index 66d3ac02f0bd5d224d7567812ba7961301c71009..27f7114f880bbcf58814b6896eb8ee4431be70b8 100644 (file)
@@ -124,9 +124,12 @@ vector<DNSName> getZoneCuts(const DNSName& begin, const DNSName& end, DNSRecordO
   // The shortest name is assumed to a zone cut
   ret.push_back(qname);
   while(qname != begin) {
+    bool foundCut = false;
+    if (labelsToAdd.empty())
+      break;
+
     qname.prependRawLabel(labelsToAdd.back());
     labelsToAdd.pop_back();
-    bool foundCut = false;
     auto records = dro.get(qname, (uint16_t)QType::NS);
     for (const auto record : records) {
       if(record.d_name != qname || record.d_type != QType::NS)