Skip to content

Instantly share code, notes, and snippets.

@Ekdohibs
Created February 18, 2015 15:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Ekdohibs/f8e5ba3335711aec7e26 to your computer and use it in GitHub Desktop.
Save Ekdohibs/f8e5ba3335711aec7e26 to your computer and use it in GitHub Desktop.
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