forked from luanti-org/minetest_game
		
	Limit sign length to 512 (~6 lines of 80 char or so).
Players can enter unlimited text into the field, causing lag and potentially locking up clients. I have not found any negative effects server side, other than the large storage needed to store the long text.
This commit is contained in:
		| @@ -2575,12 +2575,19 @@ local function register_sign(material, desc, def) | |||||||
| 				minetest.record_protection_violation(pos, player_name) | 				minetest.record_protection_violation(pos, player_name) | ||||||
| 				return | 				return | ||||||
| 			end | 			end | ||||||
| 			local meta = minetest.get_meta(pos) | 			local text = fields.text | ||||||
| 			if not fields.text then return end | 			if not text then | ||||||
|  | 				return | ||||||
|  | 			end | ||||||
|  | 			if string.len(text) > 512 then | ||||||
|  | 				minetest.chat_send_player(player_name, "Text too long") | ||||||
|  | 				return | ||||||
|  | 			end | ||||||
| 			minetest.log("action", (player_name or "") .. " wrote \"" .. | 			minetest.log("action", (player_name or "") .. " wrote \"" .. | ||||||
| 				fields.text .. "\" to sign at " .. minetest.pos_to_string(pos)) | 				text .. "\" to sign at " .. minetest.pos_to_string(pos)) | ||||||
| 			meta:set_string("text", fields.text) | 			local meta = minetest.get_meta(pos) | ||||||
| 			meta:set_string("infotext", '"' .. fields.text .. '"') | 			meta:set_string("text", text) | ||||||
|  | 			meta:set_string("infotext", '"' .. text .. '"') | ||||||
| 		end, | 		end, | ||||||
| 	}) | 	}) | ||||||
| end | end | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user