mirror of
https://github.com/3lswear/webserv.git
synced 2025-10-28 12:58:00 +03:00
fix: leak mitigations
This commit is contained in:
@@ -281,7 +281,6 @@ void Server::clean_generic(toml_node *node)
|
||||
{
|
||||
DBOUT << "cleaning string" << ENDL;
|
||||
delete node->getString();
|
||||
delete node;
|
||||
}
|
||||
break;
|
||||
case toml_node::MAPARRAY:
|
||||
@@ -291,13 +290,21 @@ void Server::clean_generic(toml_node *node)
|
||||
for (TOMLMapArray::iterator it = map_array->begin();
|
||||
it != map_array->end(); ++it)
|
||||
{
|
||||
DBOUT << "cleaning a MAP of MAPARRAY" << ENDL;
|
||||
TOMLMap *map = *it;
|
||||
for (TOMLMap::iterator map_it = map->begin();
|
||||
TOMLMap::iterator map_it = map->begin();
|
||||
for (map_it = map->begin();
|
||||
map_it != map->end(); ++map_it)
|
||||
{
|
||||
DBOUT << "cleaning a MAP item " << map_it->first << ENDL;
|
||||
clean_generic(map_it->second);
|
||||
/* map->erase(map_it); */
|
||||
}
|
||||
map->clear();
|
||||
delete map;
|
||||
}
|
||||
map_array->clear();
|
||||
delete map_array;
|
||||
DBOUT << "end cleaning MAPARRAY" << ENDL;
|
||||
}
|
||||
break;
|
||||
@@ -309,20 +316,34 @@ void Server::clean_generic(toml_node *node)
|
||||
{
|
||||
DBOUT << "key is " << it->first << ENDL;
|
||||
clean_generic(it->second);
|
||||
map->erase(it);
|
||||
/* map->erase(it); */
|
||||
}
|
||||
map->clear();
|
||||
delete node;
|
||||
delete map;
|
||||
}
|
||||
break;
|
||||
|
||||
case toml_node::ARRAY:
|
||||
{
|
||||
DBOUT << "cleaning ARRAY" << ENDL;
|
||||
TOMLArray *arr = node->getArray();
|
||||
for (TOMLArray::iterator it = arr->begin();
|
||||
it != arr->end(); ++it)
|
||||
{
|
||||
clean_generic(*it);
|
||||
}
|
||||
arr->clear();
|
||||
delete arr;
|
||||
DBOUT << "end cleaning MAP" << ENDL;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
{
|
||||
DBOUT << "Cleaning " << node->type << " not implemented :)" << ENDL;
|
||||
delete node;
|
||||
DBOUT << "Cleaning type " << node->type << " not implemented :)" << ENDL;
|
||||
}
|
||||
}
|
||||
delete node;
|
||||
|
||||
}
|
||||
|
||||
@@ -333,16 +354,17 @@ void Server::clean_parsed(TOMLMap *root)
|
||||
DBOUT << ">>> cleaning up: <<<" << std::endl;
|
||||
for (it = root->begin(); it != root->end(); ++it)
|
||||
{
|
||||
DBOUT << RED << it->first
|
||||
<< ": " << GREEN
|
||||
<< *(it->second->toString());
|
||||
/* DBOUT << RED << it->first */
|
||||
/* << ": " << GREEN */
|
||||
/* << *(it->second->toString()); */
|
||||
|
||||
clean_generic(it->second);
|
||||
/* delete it->second; */
|
||||
std::cout << ", " << std::endl;
|
||||
}
|
||||
DBOUT << YELLO << "end of clean" << ENDL;
|
||||
/* delete root; */
|
||||
root->clear();
|
||||
delete root;
|
||||
root = NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -444,6 +444,7 @@ namespace config
|
||||
}
|
||||
else
|
||||
(it->second)->getMapArray()->push_back(map_node->getMap());
|
||||
delete map_node;
|
||||
}
|
||||
else if (type == toml_node::MAP)
|
||||
{
|
||||
@@ -460,13 +461,13 @@ namespace config
|
||||
{
|
||||
it = local_root->find(*subname);
|
||||
|
||||
toml_node *map_node2;
|
||||
map_node2 = new toml_node;
|
||||
TOMLMap *map = new TOMLMap;
|
||||
map_node2->setObject(map);
|
||||
/* subname not found in local_root */
|
||||
if (it == local_root->end())
|
||||
{
|
||||
toml_node *map_node2;
|
||||
map_node2 = new toml_node;
|
||||
TOMLMap *map = new TOMLMap;
|
||||
map_node2->setObject(map);
|
||||
(*local_root)[*subname] = map_node2;
|
||||
local_root = map;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user