diff options
author | Adam <Adam@anope.org> | 2016-07-23 15:47:33 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2016-07-23 15:47:33 -0400 |
commit | 647f8cd4e639e230d80046ee5967f88a72bdee4a (patch) | |
tree | 9e5f2152cc8b71dbc350001647a04c4a99e89d0a | |
parent | b2e25db1593e7e8a6490dd42ca7e9c93bf71552c (diff) |
Add/fix various checks on source user existing in the protocol modules
-rw-r--r-- | modules/protocol/bahamut.cpp | 7 | ||||
-rw-r--r-- | modules/protocol/charybdis.cpp | 6 | ||||
-rw-r--r-- | modules/protocol/ngircd.cpp | 7 | ||||
-rw-r--r-- | modules/protocol/unreal.cpp | 6 | ||||
-rw-r--r-- | modules/protocol/unreal4.cpp | 6 |
5 files changed, 26 insertions, 6 deletions
diff --git a/modules/protocol/bahamut.cpp b/modules/protocol/bahamut.cpp index 16d593fab..453050942 100644 --- a/modules/protocol/bahamut.cpp +++ b/modules/protocol/bahamut.cpp @@ -386,7 +386,12 @@ struct IRCDMessageNick : IRCDMessage User::OnIntroduce(params[0], params[4], params[5], "", params[8], s, params[9], signon, params[3], "", na ? *na->nc : NULL); } else - source.GetUser()->ChangeNick(params[0]); + { + User *u = source.GetUser(); + + if (u) + u->ChangeNick(params[0]); + } } }; diff --git a/modules/protocol/charybdis.cpp b/modules/protocol/charybdis.cpp index f0d01c8cc..c43a290bc 100644 --- a/modules/protocol/charybdis.cpp +++ b/modules/protocol/charybdis.cpp @@ -195,7 +195,11 @@ class CharybdisProto : public IRCDProto struct IRCDMessageEncap : IRCDMessage { - IRCDMessageEncap(Module *creator) : IRCDMessage(creator, "ENCAP", 3) { SetFlag(IRCDMESSAGE_SOFT_LIMIT);} + IRCDMessageEncap(Module *creator) : IRCDMessage(creator, "ENCAP", 3) + { + SetFlag(IRCDMESSAGE_SOFT_LIMIT); + SetFlag(IRCDMESSAGE_REQUIRE_USER); + } void Run(MessageSource &source, const std::vector<Anope::string> ¶ms) anope_override { diff --git a/modules/protocol/ngircd.cpp b/modules/protocol/ngircd.cpp index e7ae31fce..bcd4826f2 100644 --- a/modules/protocol/ngircd.cpp +++ b/modules/protocol/ngircd.cpp @@ -280,7 +280,7 @@ struct IRCDMessageChaninfo : IRCDMessage struct IRCDMessageJoin : Message::Join { - IRCDMessageJoin(Module *creator) : Message::Join(creator, "JOIN") { } + IRCDMessageJoin(Module *creator) : Message::Join(creator, "JOIN") { SetFlag(IRCDMESSAGE_REQUIRE_USER); } /* * <@po||ux> DukeP: RFC 2813, 4.2.1: the JOIN command on server-server links @@ -440,8 +440,11 @@ struct IRCDMessageNick : IRCDMessage { if (params.size() == 1) { + User *u = source.GetUser(); + // we have a nickchange - source.GetUser()->ChangeNick(params[0]); + if (u) + u->ChangeNick(params[0]); } else if (params.size() == 7) { diff --git a/modules/protocol/unreal.cpp b/modules/protocol/unreal.cpp index cff2f440b..c6fc4a1c0 100644 --- a/modules/protocol/unreal.cpp +++ b/modules/protocol/unreal.cpp @@ -929,7 +929,11 @@ struct IRCDMessageNick : IRCDMessage User::OnIntroduce(params[0], params[3], params[4], vhost, ip, s, params[10], user_ts, params[7], "", na ? *na->nc : NULL); } else - source.GetUser()->ChangeNick(params[0]); + { + User *u = source.GetUser(); + if (u) + u->ChangeNick(params[0]); + } } }; diff --git a/modules/protocol/unreal4.cpp b/modules/protocol/unreal4.cpp index 6e5f6ec55..b98de5ff2 100644 --- a/modules/protocol/unreal4.cpp +++ b/modules/protocol/unreal4.cpp @@ -966,7 +966,11 @@ struct IRCDMessageNick : IRCDMessage User::OnIntroduce(params[0], params[3], params[4], vhost, ip, s, params[10], user_ts, params[7], "", na ? *na->nc : NULL); } else - source.GetUser()->ChangeNick(params[0]); + { + User *u = source.GetUser(); + if (u) + u->ChangeNick(params[0]); + } } }; |