From ac328e2f28a7b20644d1ad4d5c62604f2b616a50 Mon Sep 17 00:00:00 2001 From: Taanviir <66136914+Taanviir@users.noreply.github.com> Date: Wed, 12 Jun 2024 00:47:32 +0400 Subject: [PATCH] fix: segfault caused by invalid free --- Makefile | 2 +- sources/main.cpp | 4 ---- sources/server/Server.hpp | 4 ++-- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 62de072..2230cd3 100644 --- a/Makefile +++ b/Makefile @@ -75,7 +75,7 @@ clean: $(RM) $(OBJS_DIR); \ echo "$(RED)$(BOLD)[ DELETE ]$(RESET) Removed object files."; \ fi - @if [ -f $(TEST_PARSER) ] || [ -f $(TEST_SOCKET) ] [ -f client ]; then \ + @if [ -f $(TEST_PARSER) ] || [ -f $(TEST_SOCKET) ] || [ -f client ]; then \ $(RM) $(TEST_PARSER) $(TEST_SOCKET) client; \ echo "$(RED)$(BOLD)[ DELETE ]$(RESET) Removed testers."; \ fi diff --git a/sources/main.cpp b/sources/main.cpp index 4a179bf..941bef8 100644 --- a/sources/main.cpp +++ b/sources/main.cpp @@ -19,11 +19,7 @@ int main(int argc, char** argv) LOG_INFO("Parsing " + configFile); Server& webserv = Server::get_instance(servers, 100); -#if defined(__LINUX__) webserv.start(SELECT); -#elif defined(__MAC__) - webserv.start(SELECT); -#endif } catch (std::exception& error) { LOG_ERROR(error.what()); } diff --git a/sources/server/Server.hpp b/sources/server/Server.hpp index e7a71d1..ca546de 100644 --- a/sources/server/Server.hpp +++ b/sources/server/Server.hpp @@ -37,8 +37,8 @@ class Server { ~Server() { - for (vector::iterator sc = cfgs.begin(); sc != cfgs.end(); sc++) - delete sc->cp; + for (servers_t::iterator s = servers.begin(); s != servers.end(); s++) + delete s->second.cp; } void start(enum polling_strat);