X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/93a74949d7bb5d0c4115d1bf45f856c368badf31..7dbc514de7ee0ccffde321469a16b0a5c64a635c:/src/scripting.c?ds=sidebyside diff --git a/src/scripting.c b/src/scripting.c index 4c7de33b..a5f5683e 100644 --- a/src/scripting.c +++ b/src/scripting.c @@ -412,6 +412,13 @@ void luaLoadLibraries(lua_State *lua) { #endif } +/* Remove a functions that we don't want to expose to the Redis scripting + * environment. */ +void luaRemoveUnsupportedFunctions(lua_State *lua) { + lua_pushnil(lua); + lua_setglobal(lua,"loadfile"); +} + /* This function installs metamethods in the global table _G that prevent * the creation of globals accidentally. * @@ -455,7 +462,9 @@ void scriptingEnableGlobalsProtection(lua_State *lua) { * See scriptingReset() for more information. */ void scriptingInit(void) { lua_State *lua = lua_open(); + luaLoadLibraries(lua); + luaRemoveUnsupportedFunctions(lua); /* Initialize a dictionary we use to map SHAs to scripts. * This is useful for replication, as we need to replicate EVALSHA