Browse Source

reject negative statistics-interval values

JINMEI Tatuya 14 years ago
parent
commit
108ad199f3
2 changed files with 7 additions and 1 deletions
  1. 6 1
      src/bin/auth/config.cc
  2. 1 0
      src/bin/auth/tests/config_unittest.cc

+ 6 - 1
src/bin/auth/config.cc

@@ -177,7 +177,12 @@ public:
         server_(server), interval_(0)
     {}
     virtual void build(ConstElementPtr config_value) {
-        interval_ = config_value->intValue();
+        const int32_t config_interval = config_value->intValue();
+        if (config_interval < 0) {
+            isc_throw(AuthConfigError, "negative statistics-interval value: "
+                      << config_interval);
+        }
+        interval_ = config_interval;
     }
     virtual void commit() {
         // setStatisticsTimerInterval() is not 100% exception free.  But

+ 1 - 0
src/bin/auth/tests/config_unittest.cc

@@ -364,5 +364,6 @@ TEST_F(StatisticsIntervalConfigTest, badInterval) {
                  isc::data::TypeError);
     EXPECT_THROW(parser->build(Element::fromJSON("2.5")),
                  isc::data::TypeError);
+    EXPECT_THROW(parser->build(Element::fromJSON("-1")), AuthConfigError);
 }
 }