aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/m_channames.cpp
diff options
context:
space:
mode:
authorGravatar attilamolnar2013-06-06 01:07:22 +0200
committerGravatar attilamolnar2013-06-06 01:07:22 +0200
commitd9d99cd02dadf34bfcc220734ba0c422f0acb3e6 (patch)
tree72a11fab75875b7e4f739ddd203da60e5dcbc851 /src/modules/m_channames.cpp
parentRefactor Channel::UserList() to use std::string (diff)
parentRelease 2.0.13 (diff)
downloadinspircd++-d9d99cd02dadf34bfcc220734ba0c422f0acb3e6.tar.gz
inspircd++-d9d99cd02dadf34bfcc220734ba0c422f0acb3e6.tar.bz2
inspircd++-d9d99cd02dadf34bfcc220734ba0c422f0acb3e6.zip
Merge insp20
Diffstat (limited to 'src/modules/m_channames.cpp')
-rw-r--r--src/modules/m_channames.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/modules/m_channames.cpp b/src/modules/m_channames.cpp
index 9b43649a8..52f781ae1 100644
--- a/src/modules/m_channames.cpp
+++ b/src/modules/m_channames.cpp
@@ -87,9 +87,17 @@ class ModuleChannelNames : public Module
ServerInstance->SendGlobalMode(modes, ServerInstance->FakeClient);
}
const UserMembList* users = c->GetUsers();
- for(UserMembCIter j = users->begin(); j != users->end(); ++j)
+ for(UserMembCIter j = users->begin(); j != users->end(); )
+ {
if (IS_LOCAL(j->first))
- c->KickUser(ServerInstance->FakeClient, j->first, "Channel name no longer valid");
+ {
+ // KickUser invalidates the iterator
+ UserMembCIter it = j++;
+ c->KickUser(ServerInstance->FakeClient, it->first, "Channel name no longer valid");
+ }
+ else
+ ++j;
+ }
}
badchan = false;
}