Browse Source

[2377] Reject load incremental of 0 RRs

As it makes little sense.
Michal 'vorner' Vaner 12 years ago
parent
commit
9e8813efff
2 changed files with 11 additions and 0 deletions
  1. 3 0
      src/lib/dns/master_loader.cc
  2. 8 0
      src/lib/dns/tests/master_loader_unittest.cc

+ 3 - 0
src/lib/dns/master_loader.cc

@@ -108,6 +108,9 @@ public:
 
 bool
 MasterLoader::MasterLoaderImpl::loadIncremental(size_t count_limit) {
+    if (count_limit == 0) {
+        isc_throw(isc::InvalidParameter, "Count limit set to 0");
+    }
     if (complete_) {
         isc_throw(isc::InvalidOperation,
                   "Trying to load when already loaded");

+ 8 - 0
src/lib/dns/tests/master_loader_unittest.cc

@@ -299,4 +299,12 @@ TEST_F(MasterLoaderTest, loadTwice) {
     loader_->load();
     EXPECT_THROW(loader_->load(), isc::InvalidOperation);
 }
+
+// Load 0 items should be rejected
+TEST_F(MasterLoaderTest, loadZero) {
+    setLoader(TEST_DATA_SRCDIR "/example.org", Name("example.org."),
+              RRClass::IN(), MasterLoader::MANY_ERRORS);
+    EXPECT_THROW(loader_->loadIncremental(0), isc::InvalidParameter);
+}
+
 }