diff options
-rw-r--r-- | src/mode.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mode.cpp b/src/mode.cpp index 281fb6ac8..c7d66cd46 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -569,6 +569,12 @@ bool ModeParser::AddMode(ModeHandler* mh, unsigned const char modeletter) if ((mh->GetModeChar() < 'A') || (mh->GetModeChar() > 'z')) return false; + /* A mode prefix of ',' is not acceptable, it would fuck up server to server. + * A mode prefix of ':' will fuck up both server to server, and client to server. + */ + if ((mh->GetPrefix() == ',') || (mh->GetPrefix() == ':')) + return false; + mh->GetModeType() == MODETYPE_USER ? mask = MASK_USER : mask = MASK_CHANNEL; pos = (mh->GetModeChar()-65) | mask; |