summaryrefslogtreecommitdiff
path: root/network_gui.c
diff options
context:
space:
mode:
authorDarkvater <Darkvater@openttd.org>2006-10-21 23:31:34 +0000
committerDarkvater <Darkvater@openttd.org>2006-10-21 23:31:34 +0000
commit494c56475f04f0753d1ef7b8126612d3017df861 (patch)
treebbd2a7ac7e0c3b558bf638e1779108ced158cb6a /network_gui.c
parentc15e699479ca81045db05af98ad86452b97572fd (diff)
downloadopenttd-494c56475f04f0753d1ef7b8126612d3017df861.tar.xz
(svn r6884) -Codechange: Add strict bounds checking in string formatting system.
The last parameter should point to the end of the buffer (eg lastof(buf)) Courtesy of Tron.
Diffstat (limited to 'network_gui.c')
-rw-r--r--network_gui.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/network_gui.c b/network_gui.c
index 0e45846a3..d200f4da4 100644
--- a/network_gui.c
+++ b/network_gui.c
@@ -1181,36 +1181,36 @@ static Window *PopupClientList(Window *w, int client_no, int x, int y)
i = 0;
if (_network_own_client_index != ci->client_index) {
- GetString(_clientlist_action[i], STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT);
+ GetString(_clientlist_action[i], STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT, lastof(_clientlist_action[i]));
_clientlist_proc[i++] = &ClientList_SpeakToClient;
}
if (IsValidPlayer(ci->client_playas)) {
- GetString(_clientlist_action[i], STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY);
+ GetString(_clientlist_action[i], STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY, lastof(_clientlist_action[i]));
_clientlist_proc[i++] = &ClientList_SpeakToCompany;
}
- GetString(_clientlist_action[i], STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL);
+ GetString(_clientlist_action[i], STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL, lastof(_clientlist_action[i]));
_clientlist_proc[i++] = &ClientList_SpeakToAll;
if (_network_own_client_index != ci->client_index) {
/* We are no spectator and the player we want to give money to is no spectator */
if (IsValidPlayer(_network_playas) && IsValidPlayer(ci->client_playas)) {
- GetString(_clientlist_action[i], STR_NETWORK_CLIENTLIST_GIVE_MONEY);
+ GetString(_clientlist_action[i], STR_NETWORK_CLIENTLIST_GIVE_MONEY, lastof(_clientlist_action[i]));
_clientlist_proc[i++] = &ClientList_GiveMoney;
}
}
// A server can kick clients (but not himself)
if (_network_server && _network_own_client_index != ci->client_index) {
- GetString(_clientlist_action[i], STR_NETWORK_CLIENTLIST_KICK);
+ GetString(_clientlist_action[i], STR_NETWORK_CLIENTLIST_KICK, lastof(_clientlist_action[i]));
_clientlist_proc[i++] = &ClientList_Kick;
- sprintf(_clientlist_action[i],"Ban");
+ sprintf(_clientlist_action[i],"Ban"); // XXX GetString?
_clientlist_proc[i++] = &ClientList_Ban;
}
if (i == 0) {
- GetString(_clientlist_action[i], STR_NETWORK_CLIENTLIST_NONE);
+ GetString(_clientlist_action[i], STR_NETWORK_CLIENTLIST_NONE, lastof(_clientlist_action[i]));
_clientlist_proc[i++] = &ClientList_None;
}
@@ -1511,7 +1511,7 @@ static const char *ChatTabCompletionNextItem(uint *item)
FOR_ALL_TOWNS_FROM(t, *item - MAX_CLIENT_INFO) {
/* Get the town-name via the string-system */
SetDParam(0, t->townnameparts);
- GetString(chat_tab_temp_buffer, t->townnametype);
+ GetString(chat_tab_temp_buffer, t->townnametype, lastof(chat_tab_temp_buffer));
return &chat_tab_temp_buffer[0];
}
}