From 0dfaffa488753cfb92dd5a6909bbe8e14277343a Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Sun, 2 Jul 2023 11:49:47 +0100 Subject: Ensure that isn't too long in cloak_static. --- src/modules/m_cloak_static.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/modules/m_cloak_static.cpp') diff --git a/src/modules/m_cloak_static.cpp b/src/modules/m_cloak_static.cpp index 7c56654f6..4109b4291 100644 --- a/src/modules/m_cloak_static.cpp +++ b/src/modules/m_cloak_static.cpp @@ -27,9 +27,9 @@ private: std::string cloak; public: - StaticMethod(const Cloak::Engine* engine, const std::shared_ptr& tag) ATTR_NOT_NULL(2) + StaticMethod(const Cloak::Engine* engine, const std::shared_ptr& tag, const std::string& c) ATTR_NOT_NULL(2) : Cloak::Method(engine, tag) - , cloak(tag->getString("cloak")) + , cloak(c) { } @@ -63,7 +63,14 @@ public: Cloak::MethodPtr Create(const std::shared_ptr& tag, bool primary) override { - return std::make_shared(this, tag); + const std::string cloak = tag->getString("cloak"); + if (cloak.empty() || cloak.length() > ServerInstance->Config->Limits.MaxHost) + { + throw ModuleException(creator, INSP_FORMAT("Your static cloak must be between 1 and {} characters long, at {}", + ServerInstance->Config->Limits.MaxHost, tag->source.str())); + } + + return std::make_shared(this, tag, cloak); } }; -- cgit v1.3.1-10-gc9f91