summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mode.cpp6
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;