]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Reject setting modes which are null or not registered.
authorPeter Powell <petpow@saberuk.com>
Wed, 12 Dec 2018 13:54:31 +0000 (13:54 +0000)
committerPeter Powell <petpow@saberuk.com>
Wed, 12 Dec 2018 14:43:55 +0000 (14:43 +0000)
include/users.h
src/channels.cpp

index 28b370725b4bd2f3af9ac6b155a571c86ad62f8b..ef19adb5d858d059530f21f699d6daa2adb3a9bf 100644 (file)
@@ -932,5 +932,6 @@ inline bool User::IsModeSet(UserModeReference& moderef) const
 
 inline void User::SetMode(ModeHandler* mh, bool value)
 {
-       modes[mh->GetId()] = value;
+       if (mh && mh->GetId() != ModeParser::MODEID_MAX)
+               modes[mh->GetId()] = value;
 }
index c9816db4b006795fc0dde9faef88ade67a6d07b7..e25500892baa8c8f3942884f183e329fc44e29e1 100644 (file)
@@ -40,7 +40,8 @@ Channel::Channel(const std::string &cname, time_t ts)
 
 void Channel::SetMode(ModeHandler* mh, bool on)
 {
-       modes[mh->GetId()] = on;
+       if (mh && mh->GetId() != ModeParser::MODEID_MAX)
+               modes[mh->GetId()] = on;
 }
 
 void Channel::SetTopic(User* u, const std::string& ntopic, time_t topicts, const std::string* setter)