From abd106bacb1da0c3de909b1a289ed3fa21f2215d Mon Sep 17 00:00:00 2001
From: Perttu Ahola <celeron55@gmail.com>
Date: Sun, 4 Dec 2011 18:26:05 +0200
Subject: [PATCH] Enforce modname naming convention

---
 src/scriptapi.cpp | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/scriptapi.cpp b/src/scriptapi.cpp
index a88d6be5a..c759683ed 100644
--- a/src/scriptapi.cpp
+++ b/src/scriptapi.cpp
@@ -164,7 +164,7 @@ void check_modname_prefix(lua_State *L, std::string &name)
 			"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"))
 		throw LuaError(L, std::string("Name \"")+name
 				+"\" does not follow naming conventions: "
-				+"\"contains unallowed characters)");
+				+"\"contains unallowed characters");
 }
 
 static v3f readFloatPos(lua_State *L, int index)
@@ -2672,6 +2672,14 @@ bool scriptapi_loadmod(lua_State *L, const std::string &scriptpath,
 {
 	ModNameStorer modnamestorer(L, modname);
 
+	if(!string_allowed(modname, "abcdefghijklmnopqrstuvwxyz"
+			"0123456789_")){
+		errorstream<<"Error loading mod \""<<modname
+				<<"\": modname does not follow naming conventions: "
+				<<"Only chararacters [a-z0-9_] are allowed."<<std::endl;
+		return false;
+	}
+	
 	bool success = false;
 
 	try{
-- 
GitLab