mirror of
https://github.com/Snapchat/KeyDB.git
synced 2026-11-13 20:32:09 -05:00
Modules must have execute permissions to load
Former-commit-id: a4efcd35af
This commit is contained in:
1 parent
ebc50797a0
commit
5404d6f6bb
1 file changed
+10
@@ -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) {
|
||||
|
||||
Reference in new issue
Block a user