summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2016-03-29 12:38:41 +0200
committerAttila Molnar <attilamolnar@hush.com>2016-03-29 12:38:41 +0200
commite91c675b094760407d7c00bbec17795f30978c1e (patch)
tree4a98d1be527a22805b8cda7ca597b7feaffaf79c /src
parent60ecb2157db64da797d0f505ce905e3a96a61d1a (diff)
Ensure server names passed to some commands are really server names
Diffstat (limited to 'src')
-rw-r--r--src/coremods/core_info/core_info.cpp3
-rw-r--r--src/coremods/core_stats.cpp2
-rw-r--r--src/modules/m_check.cpp2
-rw-r--r--src/modules/m_opermotd.cpp2
4 files changed, 5 insertions, 4 deletions
diff --git a/src/coremods/core_info/core_info.cpp b/src/coremods/core_info/core_info.cpp
index 37fbed273..bd519076d 100644
--- a/src/coremods/core_info/core_info.cpp
+++ b/src/coremods/core_info/core_info.cpp
@@ -22,7 +22,8 @@
RouteDescriptor ServerTargetCommand::GetRouting(User* user, const std::vector<std::string>& parameters)
{
- if (!parameters.empty())
+ // Parameter must be a server name, not a nickname or uuid
+ if ((!parameters.empty()) && (parameters[0].find('.') != std::string::npos))
return ROUTE_UNICAST(parameters[0]);
return ROUTE_LOCALONLY;
}
diff --git a/src/coremods/core_stats.cpp b/src/coremods/core_stats.cpp
index 69f1f3cf8..d890d19ea 100644
--- a/src/coremods/core_stats.cpp
+++ b/src/coremods/core_stats.cpp
@@ -44,7 +44,7 @@ class CommandStats : public Command
CmdResult Handle(const std::vector<std::string>& parameters, User *user);
RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters)
{
- if (parameters.size() > 1)
+ if ((parameters.size() > 1) && (parameters[1].find('.') != std::string::npos))
return ROUTE_UNICAST(parameters[1]);
return ROUTE_LOCALONLY;
}
diff --git a/src/modules/m_check.cpp b/src/modules/m_check.cpp
index ef9507aa1..17eb9d9c5 100644
--- a/src/modules/m_check.cpp
+++ b/src/modules/m_check.cpp
@@ -301,7 +301,7 @@ class CommandCheck : public Command
RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters)
{
- if (parameters.size() > 1)
+ if ((parameters.size() > 1) && (parameters[1].find('.') != std::string::npos))
return ROUTE_OPT_UCAST(parameters[1]);
return ROUTE_LOCALONLY;
}
diff --git a/src/modules/m_opermotd.cpp b/src/modules/m_opermotd.cpp
index 010f4ae58..f6cb5853c 100644
--- a/src/modules/m_opermotd.cpp
+++ b/src/modules/m_opermotd.cpp
@@ -43,7 +43,7 @@ class CommandOpermotd : public Command
RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters)
{
- if (!parameters.empty())
+ if ((!parameters.empty()) && (parameters[0].find('.') != std::string::npos))
return ROUTE_OPT_UCAST(parameters[0]);
return ROUTE_LOCALONLY;
}