]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/dynamic.cpp
Decide that it wasn't quite appropriate :(
[user/henk/code/inspircd.git] / src / dynamic.cpp
index 1dfb823c67404b379cba2c742dc5775e5bf42e94..8e63b7d03ee0729738a9a12cd677087cbad969be 100644 (file)
@@ -37,6 +37,11 @@ extern ServerConfig* Config;
 
 DLLManager::DLLManager(char *fname)
 {
+       if (!strstr(fname,".so"))
+       {
+               err = "This doesn't look like a module file to me...";
+               return;
+       }
 #ifdef STATIC_LINK
        this->staticname[0] = '\0';
        log(DEBUG,"Loading core-compiled module '%s'",fname);
@@ -69,9 +74,14 @@ DLLManager::DLLManager(char *fname)
        // shared libraries are mmap()ed and not doing this causes
        // segfaults.
        FILE* x = fopen(fname,"rb");
+       if (!x)
+       {
+               err = "Module file not found or cannot access, game over man!";
+               return;
+       }
        char tmpfile_template[255];
        char buffer[65536];
-       snprintf(tmpfile_template, 255, "/tmp/inspircd_file.so.%d.XXXXXXXXXX",getpid());
+       snprintf(tmpfile_template, 255, "%s/inspircd_file.so.%d.XXXXXXXXXX",Config->TempDir,getpid());
        int fd = mkstemp(tmpfile_template);
        while (!feof(x))
        {