mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 14:27:16 +00:00
(svn r14064) -Fix [FS#1752]: check for the length of strings (in bytes) in the command. Checking for the length in pixels is impossible because that differs per client.
This commit is contained in:
parent
97c184f8f8
commit
2d94337e1a
@ -487,7 +487,8 @@ static bool IsUniqueEngineName(const char *name)
|
||||
*/
|
||||
CommandCost CmdRenameEngine(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||
{
|
||||
if (!IsEngineIndex(p1) || StrEmpty(_cmd_text)) return CMD_ERROR;
|
||||
if (!IsEngineIndex(p1)) return CMD_ERROR;
|
||||
if (StrEmpty(_cmd_text) || strlen(_cmd_text) >= MAX_LENGTH_ENGINE_NAME_BYTES) return CMD_ERROR;
|
||||
|
||||
if (!IsUniqueEngineName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
|
||||
|
||||
|
@ -170,7 +170,8 @@ static bool IsUniqueGroupName(const char *name)
|
||||
*/
|
||||
CommandCost CmdRenameGroup(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||
{
|
||||
if (!IsValidGroupID(p1) || StrEmpty(_cmd_text)) return CMD_ERROR;
|
||||
if (!IsValidGroupID(p1)) return CMD_ERROR;
|
||||
if (StrEmpty(_cmd_text) || strlen(_cmd_text) >= MAX_LENGTH_GROUP_NAME_BYTES) return CMD_ERROR;
|
||||
|
||||
Group *g = GetGroup(p1);
|
||||
if (g->owner != _current_player) return CMD_ERROR;
|
||||
|
@ -366,8 +366,7 @@ verify_name:;
|
||||
}
|
||||
|
||||
GetString(buffer, str, lastof(buffer));
|
||||
if (strlen(buffer) >= 32 || GetStringBoundingBox(buffer).width >= 150)
|
||||
goto bad_town_name;
|
||||
if (strlen(buffer) >= MAX_LENGTH_COMPANY_NAME_BYTES) goto bad_town_name;
|
||||
|
||||
set_name:;
|
||||
p->name_1 = str;
|
||||
|
@ -133,6 +133,8 @@ CommandCost CmdRenameSign(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||
/* If _cmd_text 0 means the new text for the sign is non-empty.
|
||||
* So rename the sign. If it is empty, it has no name, so delete it */
|
||||
if (!StrEmpty(_cmd_text)) {
|
||||
if (strlen(_cmd_text) >= MAX_LENGTH_SIGN_NAME_BYTES) return CMD_ERROR;
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
Sign *si = GetSign(p1);
|
||||
|
||||
|
@ -2809,7 +2809,9 @@ static bool IsUniqueStationName(const char *name)
|
||||
*/
|
||||
CommandCost CmdRenameStation(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||
{
|
||||
if (!IsValidStationID(p1) || StrEmpty(_cmd_text)) return CMD_ERROR;
|
||||
if (!IsValidStationID(p1))
|
||||
if (StrEmpty(_cmd_text) || strlen(_cmd_text) >= MAX_LENGTH_STATION_NAME_BYTES) return CMD_ERROR;
|
||||
|
||||
Station *st = GetStation(p1);
|
||||
|
||||
if (!CheckOwnership(st->owner)) return CMD_ERROR;
|
||||
|
@ -1394,7 +1394,7 @@ restart:
|
||||
}
|
||||
|
||||
/* Check size and width */
|
||||
if (strlen(buf1) >= 31 || GetStringBoundingBox(buf1).width > 130) continue;
|
||||
if (strlen(buf1) >= MAX_LENGTH_TOWN_NAME_BYTES || GetStringBoundingBox(buf1).width > MAX_LENGTH_TOWN_NAME_PIXELS) continue;
|
||||
|
||||
FOR_ALL_TOWNS(t2) {
|
||||
/* We can't just compare the numbers since
|
||||
@ -2093,7 +2093,8 @@ static bool IsUniqueTownName(const char *name)
|
||||
*/
|
||||
CommandCost CmdRenameTown(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||
{
|
||||
if (!IsValidTownID(p1) || StrEmpty(_cmd_text)) return CMD_ERROR;
|
||||
if (!IsValidTownID(p1)) return CMD_ERROR;
|
||||
if (StrEmpty(_cmd_text) || strlen(_cmd_text) >= MAX_LENGTH_TOWN_NAME_BYTES) return CMD_ERROR;
|
||||
|
||||
if (!IsUniqueTownName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
|
||||
|
||||
|
@ -1502,7 +1502,8 @@ static bool IsUniqueVehicleName(const char *name)
|
||||
*/
|
||||
CommandCost CmdNameVehicle(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||
{
|
||||
if (!IsValidVehicleID(p1) || StrEmpty(_cmd_text)) return CMD_ERROR;
|
||||
if (!IsValidVehicleID(p1)) return CMD_ERROR;
|
||||
if (StrEmpty(_cmd_text) || strlen(_cmd_text) >= MAX_LENGTH_VEHICLE_NAME_BYTES) return CMD_ERROR;
|
||||
|
||||
Vehicle *v = GetVehicle(p1);
|
||||
|
||||
|
@ -389,6 +389,7 @@ CommandCost CmdRenameWaypoint(TileIndex tile, uint32 flags, uint32 p1, uint32 p2
|
||||
if (!CheckTileOwnership(wp->xy)) return CMD_ERROR;
|
||||
|
||||
if (!StrEmpty(_cmd_text)) {
|
||||
if (strlen(_cmd_text) >= MAX_LENGTH_WAYPOINT_NAME_BYTES) return CMD_ERROR;
|
||||
if (!IsUniqueWaypointName(_cmd_text)) return_cmd_error(STR_NAME_MUST_BE_UNIQUE);
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
|
Loading…
Reference in New Issue
Block a user