From d0a118f5b1a2cada1d46d4acac55a998e268154d Mon Sep 17 00:00:00 2001 From: Jude Melton-Houghton Date: Mon, 28 Nov 2022 07:21:43 -0500 Subject: Add `minetest.get_game_info` and allow reading `game.conf` (#12989) Co-authored-by: sfan5 --- src/script/cpp_api/s_security.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/script/cpp_api/s_security.cpp') diff --git a/src/script/cpp_api/s_security.cpp b/src/script/cpp_api/s_security.cpp index 0d989ae04..09e971007 100644 --- a/src/script/cpp_api/s_security.cpp +++ b/src/script/cpp_api/s_security.cpp @@ -579,6 +579,17 @@ bool ScriptApiSecurity::checkPath(lua_State *L, const char *path, } lua_pop(L, 1); // Pop mod name + // Allow read-only access to game directory + if (!write_required) { + const SubgameSpec *game_spec = gamedef->getGameSpec(); + if (game_spec && !game_spec->path.empty()) { + str = fs::AbsolutePath(game_spec->path); + if (!str.empty() && fs::PathStartsWith(abs_path, str)) { + return true; + } + } + } + // Allow read-only access to all mod directories if (!write_required) { const std::vector &mods = gamedef->getMods(); -- cgit v1.2.3