summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-10-19 02:59:52 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-10-19 02:59:52 +0000
commit041401bc1fa01d5b1397b20847f8c95b8ea2a4f8 (patch)
tree36fce4af8a997c047aac0ddab4ab6bdae62e4ee6
parent076a56d8545dbdb1c975a9a85648b8c1d0345d5d (diff)
Prevent path names from being specified in modules, and move moduledir to a <path> tag
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11914 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/configreader.cpp2
-rw-r--r--src/modules.cpp3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/configreader.cpp b/src/configreader.cpp
index b586db531..80d123842 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -791,7 +791,7 @@ void ServerConfig::Fill()
AdminName = ConfValue("admin")->getString("name", "");
AdminEmail = ConfValue("admin")->getString("email", "null@example.com");
AdminNick = ConfValue("admin")->getString("nick", "admin");
- ModPath = options->getString("moduledir", MOD_PATH);
+ ModPath = ConfValue("path")->getString("moduledir", MOD_PATH);
NetBufferSize = ConfValue("performance")->getInt("netbuffersize", 10240);
MaxWhoResults = ConfValue("performance")->getInt("maxwho", 1024);
dns_timeout = ConfValue("dns")->getInt("timeout", 5);
diff --git a/src/modules.cpp b/src/modules.cpp
index 2dafc8864..8957b4bb6 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -321,6 +321,9 @@ std::string& ModuleManager::LastError()
bool ModuleManager::Load(const char* filename)
{
+ /* Don't allow people to specify paths for modules, it doesn't work as expected */
+ if (strchr(filename, '/'))
+ return false;
/* Do we have a glob pattern in the filename?
* The user wants to load multiple modules which
* match the pattern.