mirror of
https://github.com/3lswear/webserv.git
synced 2025-10-29 13:27:59 +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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user