diff options
author | Adam <Adam@anope.org> | 2017-06-21 20:46:29 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2017-06-21 20:46:29 -0400 |
commit | 46acfd0490bee851ef82897fa6a7686f64b2544e (patch) | |
tree | 3ad9859ba7220cb509d57dfde31d99c242586267 /src/modulemanager.cpp | |
parent | cd9895561bd597b52b27c79f0c74a9e6c522d688 (diff) |
Stop init if a module can't be loaded because it doesn't exist
Diffstat (limited to 'src/modulemanager.cpp')
-rw-r--r-- | src/modulemanager.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/modulemanager.cpp b/src/modulemanager.cpp index a8cfbd547..661519ca4 100644 --- a/src/modulemanager.cpp +++ b/src/modulemanager.cpp @@ -157,6 +157,13 @@ ModuleReturn ModuleManager::LoadModule(const Anope::string &modname, User *u) } #else Anope::string pbuf = Anope::ModuleDir + "/modules/" + modname.replace_all_cs("/", "_") + ".so"; + + struct stat s; + if (stat(pbuf.c_str(), &s) == -1 || !S_ISREG(s.st_mode)) + { + Anope::Logger.Terminal(_("Error while loading {0} (file does not exist)"), modname); + return ModuleReturn::NOEXIST; + } #endif dlerror(); |