1
0
mirror of https://github.com/fwbuilder/fwbuilder synced 2026-03-20 10:17:16 +01:00

* NATCompiler_pix.cpp (NATCompiler_pix): fixes #1901 "add

destructor to NATCompiler_pix and NATCompiler_asa8". This
eliminates memory leak.
This commit is contained in:
Vadim Kurland 2011-01-07 17:01:23 -08:00
parent 62e7c778fe
commit df810d9d27
5 changed files with 38 additions and 2 deletions

View File

@ -1,5 +1,9 @@
2011-01-07 vadim <vadim@netcitadel.com>
* NATCompiler_pix.cpp (NATCompiler_pix): fixes #1901 "add
destructor to NATCompiler_pix and NATCompiler_asa8". This
eliminates memory leak.
* ASA8Object.cpp (ASA8Object): refs #1885 "named network and
service objects in pix8". So far, these objects are only used
for nat configuration.

View File

@ -105,7 +105,8 @@ namespace fwcompiler {
libfwbuilder::Firewall *fw,
bool ipv6_policy,
fwcompiler::OSConfigurator *_oscnf);
virtual ~NATCompiler_asa8();
virtual void compile();
};

View File

@ -57,6 +57,16 @@ void NATCompiler_asa8::addASA8Object(const FWObject *obj)
asa8_object_registry[obj->getId()] = asa8obj;
}
}
NATCompiler_asa8::~NATCompiler_asa8()
{
std::map<int, ASA8Object*>::iterator it;
for (it=asa8_object_registry.begin(); it!=asa8_object_registry.end(); ++it)
{
delete it->second;
}
asa8_object_registry.clear();
}
ASA8Object* NATCompiler_asa8::getASA8Object(const FWObject *obj)
{

View File

@ -73,6 +73,26 @@ NATCompiler_pix::NATCompiler_pix(FWObjectDatabase *_db,
{
}
NATCompiler_pix::~NATCompiler_pix()
{
std::map<int,NATCmd*>::iterator it1;
for (it1=nat_commands.begin(); it1!=nat_commands.end(); ++it1)
{
delete it1->second;
}
nat_commands.clear();
std::map<int,StaticCmd*>::iterator it2;
for (it2=static_commands.begin(); it2!=static_commands.end(); ++it2)
{
delete it2->second;
}
static_commands.clear();
nonat_rules.clear();
first_nonat_rule_id.clear();
if (final_ruleset != NULL) delete final_ruleset;
}
/*
* Do not expand interfaces in ODst and TSrc

View File

@ -502,7 +502,8 @@ namespace fwcompiler {
libfwbuilder::Firewall *fw,
bool ipv6_policy,
fwcompiler::OSConfigurator *_oscnf);
virtual ~NATCompiler_pix();
virtual int prolog();
virtual void compile();
virtual void epilog();