]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
calidns: Don't crash if we don't have enough 'unknown' queries remaining 4686/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 15 Nov 2016 15:37:53 +0000 (16:37 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 15 Nov 2016 15:37:53 +0000 (16:37 +0100)
pdns/calidns.cc

index 44e87e11a0f2876a83b3fece98cec03d50f1a791..5c5b7d6b760d172b2aa600a71a2d599a524168b7 100644 (file)
@@ -246,8 +246,15 @@ try
     cout<<"Aiming at "<<qps<< "qps for "<<seconds<<" seconds at cache hitrate "<<100.0*hitrate<<"%";
     unsigned int misses=(1-hitrate)*qps*seconds;
     unsigned int total=qps*seconds;
+    if (misses == 0) {
+      misses = 1;
+    }
     cout<<", need "<<misses<<" misses, "<<total<<" queries, have "<<unknown.size()<<" unknown left!"<<endl;
 
+    if (misses > unknown.size()) {
+      cerr<<"Not enough queries remaining (need at least "<<misses<<" and got "<<unknown.size()<<", please add more to the query file), exiting."<<endl;
+      exit(1);
+    }
     vector<vector<uint8_t>*> toSend;
     unsigned int n;
     for(n=0; n < misses; ++n) {