From 5d37e21d04391ab985744aff9ccb4e159d27d82d Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 27 Jun 2013 19:23:23 +0000 Subject: (svn r25486) -Fix [FS#5613-ish]: missing length validation for town and president names in script APIs --- src/script/api/script_company.cpp | 1 + src/script/api/script_town.cpp | 1 + 2 files changed, 2 insertions(+) (limited to 'src/script') diff --git a/src/script/api/script_company.cpp b/src/script/api/script_company.cpp index 8dea4c22e..99fe34376 100644 --- a/src/script/api/script_company.cpp +++ b/src/script/api/script_company.cpp @@ -66,6 +66,7 @@ EnforcePrecondition(false, name != NULL); const char *text = name->GetEncodedText(); EnforcePreconditionEncodedText(false, text); + EnforcePreconditionCustomError(false, ::Utf8StringLength(text) < MAX_LENGTH_PRESIDENT_NAME_CHARS, ScriptError::ERR_PRECONDITION_STRING_TOO_LONG); return ScriptObject::DoCommand(0, 0, 0, CMD_RENAME_PRESIDENT, text); } diff --git a/src/script/api/script_town.cpp b/src/script/api/script_town.cpp index fa4b9c0c7..5ade6f40f 100644 --- a/src/script/api/script_town.cpp +++ b/src/script/api/script_town.cpp @@ -46,6 +46,7 @@ const char *encoded_text = text->GetEncodedText(); EnforcePreconditionEncodedText(false, encoded_text); EnforcePrecondition(false, IsValidTown(town_id)); + EnforcePreconditionCustomError(false, ::Utf8StringLength(encoded_text) < MAX_LENGTH_TOWN_NAME_CHARS, ScriptError::ERR_PRECONDITION_STRING_TOO_LONG); return ScriptObject::DoCommand(::Town::Get(town_id)->xy, town_id, 0, CMD_TOWN_SET_TEXT, encoded_text); } -- cgit v1.2.3-70-g09d2