From b28782c4a3cd52587d61541bcca4e0b217685c54 Mon Sep 17 00:00:00 2001 From: Attila Molnar Date: Sun, 17 May 2015 18:00:42 +0200 Subject: Fix incorrect iterator use leading to prematurely exiting loops when quitting users while looping the local user list --- src/inspircd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/inspircd.cpp') diff --git a/src/inspircd.cpp b/src/inspircd.cpp index cb2b5db9d..5dfcca6d9 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -110,8 +110,8 @@ void InspIRCd::Cleanup() /* Close all client sockets, or the new process inherits them */ const UserManager::LocalList& list = Users.GetLocalUsers(); - for (UserManager::LocalList::const_iterator i = list.begin(); i != list.end(); ++i) - Users->QuitUser(*i, "Server shutdown"); + while (!list.empty()) + Users->QuitUser(list.front(), "Server shutdown"); GlobalCulls.Apply(); Modules->UnloadAll(); -- cgit v1.2.3