Modules must have execute permissions to load

Former-commit-id: a4efcd35af52227a22daf7f882e8e14db3f8bf57
This commit is contained in:
John Sully 2019-07-19 01:31:10 -04:00
parent ebc50797a0
commit 5404d6f6bb

View File

@ -32,6 +32,7 @@
#include <dlfcn.h>
#include <mutex>
#include <condition_variable>
#include <sys/stat.h>
#define REDISMODULE_CORE 1
#include "redismodule.h"
@ -5226,6 +5227,15 @@ int moduleLoad(const char *path, void **module_argv, int module_argc) {
int (*onload)(void *, void **, int);
void *handle;
RedisModuleCtx ctx = REDISMODULE_CTX_INIT;
struct stat st;
if (stat(path, &st) == 0)
{ // this check is best effort
if (!(st.st_mode & S_IEXEC)) {
serverLog(LL_WARNING, "Module %s failed to load: It does not have execute permissions.", path);
return C_ERR;
}
}
handle = dlopen(path,RTLD_NOW|RTLD_LOCAL);
if (handle == NULL) {