From: Andrei Pavel Date: Tue, 23 May 2023 09:21:49 +0000 (+0300) Subject: [#2873] null check to prevent crash in GenericLeaseMgrTest X-Git-Tag: Kea-2.3.8~102 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3265bac3137ef9180d9b15fff362076fde0fd7b1;p=thirdparty%2Fkea.git [#2873] null check to prevent crash in GenericLeaseMgrTest --- diff --git a/src/lib/dhcpsrv/cfg_subnets4.cc b/src/lib/dhcpsrv/cfg_subnets4.cc index aaebbd693a..a621c4d4a6 100644 --- a/src/lib/dhcpsrv/cfg_subnets4.cc +++ b/src/lib/dhcpsrv/cfg_subnets4.cc @@ -584,6 +584,11 @@ CfgSubnets4::initAllocatorsAfterConfigure() { } } +void +CfgSubnets4::clear() { + subnets_.clear(); +} + ElementPtr CfgSubnets4::toElement() const { ElementPtr result = Element::createList(); diff --git a/src/lib/dhcpsrv/cfg_subnets4.h b/src/lib/dhcpsrv/cfg_subnets4.h index d2e50e0d5a..84367bb273 100644 --- a/src/lib/dhcpsrv/cfg_subnets4.h +++ b/src/lib/dhcpsrv/cfg_subnets4.h @@ -330,6 +330,9 @@ public: /// @brief Calls @c initAllocatorsAfterConfigure for each subnet. void initAllocatorsAfterConfigure(); + /// @brief Clears all subnets from the configuration. + void clear(); + /// @brief Unparse a configuration object /// /// @return a pointer to unparsed configuration diff --git a/src/lib/dhcpsrv/cfg_subnets6.cc b/src/lib/dhcpsrv/cfg_subnets6.cc index 819d77aded..ef22436626 100644 --- a/src/lib/dhcpsrv/cfg_subnets6.cc +++ b/src/lib/dhcpsrv/cfg_subnets6.cc @@ -494,6 +494,11 @@ CfgSubnets6::initAllocatorsAfterConfigure() { } } +void +CfgSubnets6::clear() { + subnets_.clear(); +} + ElementPtr CfgSubnets6::toElement() const { ElementPtr result = Element::createList(); diff --git a/src/lib/dhcpsrv/cfg_subnets6.h b/src/lib/dhcpsrv/cfg_subnets6.h index 089e3a7c03..b21c808193 100644 --- a/src/lib/dhcpsrv/cfg_subnets6.h +++ b/src/lib/dhcpsrv/cfg_subnets6.h @@ -280,6 +280,9 @@ public: /// @brief Calls @c initAllocatorsAfterConfigure for each subnet. void initAllocatorsAfterConfigure(); + /// @brief Clears all subnets from the configuration. + void clear(); + /// @brief Unparse a configuration object /// /// @return a pointer to unparsed configuration diff --git a/src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc b/src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc index 93e132dbe5..c42ab8092b 100644 --- a/src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc +++ b/src/lib/dhcpsrv/tests/generic_lease_mgr_unittest.cc @@ -84,12 +84,8 @@ GenericLeaseMgrTest::GenericLeaseMgrTest() } // Clear all subnets defined in previous tests. - for (Subnet4Ptr const& subnet : *CfgMgr::instance().getStagingCfg()->getCfgSubnets4()->getAll()) { - CfgMgr::instance().getStagingCfg()->getCfgSubnets4()->del(subnet); - } - for (Subnet6Ptr const& subnet : *CfgMgr::instance().getStagingCfg()->getCfgSubnets6()->getAll()) { - CfgMgr::instance().getStagingCfg()->getCfgSubnets6()->del(subnet); - } + CfgMgr::instance().getStagingCfg()->getCfgSubnets4()->clear(); + CfgMgr::instance().getStagingCfg()->getCfgSubnets6()->clear(); // Clear all stats. StatsMgr::instance().removeAll();