summaryrefslogtreecommitdiff
path: root/modules/commands/cs_set.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-07-02 01:56:13 -0400
committerAdam <Adam@anope.org>2013-07-02 01:56:13 -0400
commitc62b3cb275800555f4e04f294d432dccf909d134 (patch)
treeb58a4d88436883ff7af29c4fa5fb0e1ca9986b1e /modules/commands/cs_set.cpp
parent1a3d9a016d3adc49788bbff73aac9b3b5ea85b17 (diff)
Fix a few issues found by Attila (invalid array access in channel set events, os_chankill inf loop)
Diffstat (limited to 'modules/commands/cs_set.cpp')
-rw-r--r--modules/commands/cs_set.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/modules/commands/cs_set.cpp b/modules/commands/cs_set.cpp
index d392f6b1d..161b0b725 100644
--- a/modules/commands/cs_set.cpp
+++ b/modules/commands/cs_set.cpp
@@ -239,6 +239,7 @@ class CommandCSSetDescription : public Command
void Execute(CommandSource &source, const std::vector<Anope::string> &params) anope_override
{
ChannelInfo *ci = ChannelInfo::Find(params[0]);
+ const Anope::string &param = params.size() > 1 ? params[1] : "";
if (ci == NULL)
{
source.Reply(CHAN_X_NOT_REGISTERED, params[0].c_str());
@@ -246,7 +247,7 @@ class CommandCSSetDescription : public Command
}
EventReturn MOD_RESULT;
- FOREACH_RESULT(OnSetChannelOption, MOD_RESULT, (source, this, ci, params[1]));
+ FOREACH_RESULT(OnSetChannelOption, MOD_RESULT, (source, this, ci, param));
if (MOD_RESULT == EVENT_STOP)
return;
@@ -256,9 +257,9 @@ class CommandCSSetDescription : public Command
return;
}
- if (params.size() > 1)
+ if (!param.empty())
{
- ci->desc = params[1];
+ ci->desc = param;
Log(source.AccessFor(ci).HasPriv("SET") ? LOG_COMMAND : LOG_OVERRIDE, source, this, ci) << "to change the description to " << ci->desc;
source.Reply(_("Description of %s changed to \002%s\002."), ci->name.c_str(), ci->desc.c_str());
}
@@ -866,6 +867,7 @@ class CommandCSSetSuccessor : public Command
void Execute(CommandSource &source, const std::vector<Anope::string> &params) anope_override
{
ChannelInfo *ci = ChannelInfo::Find(params[0]);
+ const Anope::string &param = params.size() > 1 ? params[1] : "";
if (ci == NULL)
{
source.Reply(CHAN_X_NOT_REGISTERED, params[0].c_str());
@@ -873,7 +875,7 @@ class CommandCSSetSuccessor : public Command
}
EventReturn MOD_RESULT;
- FOREACH_RESULT(OnSetChannelOption, MOD_RESULT, (source, this, ci, params[1]));
+ FOREACH_RESULT(OnSetChannelOption, MOD_RESULT, (source, this, ci, param));
if (MOD_RESULT == EVENT_STOP)
return;
@@ -885,13 +887,13 @@ class CommandCSSetSuccessor : public Command
NickCore *nc;
- if (params.size() > 1)
+ if (!param.empty())
{
- const NickAlias *na = NickAlias::Find(params[1]);
+ const NickAlias *na = NickAlias::Find(param);
if (!na)
{
- source.Reply(NICK_X_NOT_REGISTERED, params[1].c_str());
+ source.Reply(NICK_X_NOT_REGISTERED, param.c_str());
return;
}
if (na->nc == ci->GetFounder())