summaryrefslogtreecommitdiff
path: root/modules/commands/os_oper.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2016-01-19 16:25:02 -0500
committerAdam <Adam@anope.org>2016-01-19 16:25:02 -0500
commit164b349ef9cfbc0f275333b60b0786848ce0f2e7 (patch)
tree114794e4954cf8924f926f09f02f7ff69b984be4 /modules/commands/os_oper.cpp
parent4771af1cb89cd5d9a983d83e108b9fb8de9b5f52 (diff)
Fix various inconsistencies/crashes related to having multiple opers configured for the same user through combinations of os_oper/config/m_sql_oper
Diffstat (limited to 'modules/commands/os_oper.cpp')
-rw-r--r--modules/commands/os_oper.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/modules/commands/os_oper.cpp b/modules/commands/os_oper.cpp
index 7b74af5ea..751c76cc9 100644
--- a/modules/commands/os_oper.cpp
+++ b/modules/commands/os_oper.cpp
@@ -135,6 +135,8 @@ class CommandOSOper : public Command
source.Reply(_("Nick \002%s\002 is not a Services Operator."), oper.c_str());
else if (!HasPrivs(source, na->nc->o->ot))
source.Reply(ACCESS_DENIED);
+ else if (std::find(Config->Opers.begin(), Config->Opers.end(), na->nc->o) != Config->Opers.end())
+ source.Reply(_("Oper \002%s\002 is configured in the configuration file(s) and can not be removed by this command."), na->nc->display.c_str());
else
{
delete na->nc->o;