Created
February 18, 2015 15:53
-
-
Save Ekdohibs/f8e5ba3335711aec7e26 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
commit 804d65a8ecdb70acf868e0a5a9b6c670b473a70c | |
Author: Novatux <nathanael.courant@laposte.net> | |
Date: Wed Feb 18 16:48:58 2015 +0100 | |
Add modname convention checking | |
Fixes #2037 | |
diff --git a/builtin/mainmenu/dlg_config_world.lua b/builtin/mainmenu/dlg_config_world.lua | |
index a15e4c1..4d13fae 100644 | |
--- a/builtin/mainmenu/dlg_config_world.lua | |
+++ b/builtin/mainmenu/dlg_config_world.lua | |
@@ -16,6 +16,9 @@ | |
--51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
-------------------------------------------------------------------------------- | |
+local function modname_valid(name) | |
+ return not name:find("[^a-z0-9_]") | |
+end | |
local function get_formspec(data) | |
@@ -195,10 +198,12 @@ local function handle_buttons(this, fields) | |
for i,mod in ipairs(rawlist) do | |
if not mod.is_modpack and | |
mod.typ ~= "game_mod" then | |
- if mod.enabled then | |
- worldfile:set("load_mod_"..mod.name, "true") | |
+ if modname_valid(mod.name) then | |
+ worldfile:set("load_mod_"..mod.name, tostring(mod.enabled)) | |
else | |
- worldfile:set("load_mod_"..mod.name, "false") | |
+ if mod.enabled then | |
+ gamedata.errormessage = fgettext_ne("Failed to enable mod \"$1\" as it contains disallowed characters. Only chararacters [a-z0-9_] are allowed.", mod.name) | |
+ end | |
end | |
mods["load_mod_"..mod.name] = nil | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment