diff --git a/lib/config.cpp b/lib/config.cpp index e8398ff2..f75b1e36 100644 --- a/lib/config.cpp +++ b/lib/config.cpp @@ -34,6 +34,7 @@ #include // for va_list #include #include +#include #include bool Util::Config::is_active = false; @@ -784,7 +785,14 @@ void Util::getMyExec(std::deque &execs){ do{ errno = 0; if ((dp = readdir(d))){ - if (strncmp(dp->d_name, "Mist", 4) == 0){execs.push_back(dp->d_name);} + if (dp->d_type != DT_DIR && strncmp(dp->d_name, "Mist", 4) == 0){ + if (dp->d_type != DT_REG) { + struct stat st = {}; + stat(dp->d_name, &st); + if (!S_ISREG(st.st_mode)) + continue; + } + execs.push_back(dp->d_name);} } }while (dp != NULL); closedir(d);