diff options
| author | 2013-06-06 01:07:22 +0200 | |
|---|---|---|
| committer | 2013-06-06 01:07:22 +0200 | |
| commit | d9d99cd02dadf34bfcc220734ba0c422f0acb3e6 (patch) | |
| tree | 72a11fab75875b7e4f739ddd203da60e5dcbc851 /src/modules/m_channames.cpp | |
| parent | Refactor Channel::UserList() to use std::string (diff) | |
| parent | Release 2.0.13 (diff) | |
| download | inspircd++-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.cpp | 12 |
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; } |
