tPotential buffer overflow fixed; %tde notation should now work for Location[x].Name. - vaccinewars - be a doctor and try to vaccinate the world
(HTM) git clone git://src.adamsgaard.dk/vaccinewars
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit c5c96846e3ee5943f8c32560bf30e047f876b86d
(DIR) parent 237e49d2c39b0a3fbb641caa49c8bc2f10a79399
(HTM) Author: Ben Webb <ben@salilab.org>
Date: Tue, 30 Jul 2002 17:21:41 +0000
Potential buffer overflow fixed; %tde notation should now work for
Location[x].Name.
Diffstat:
M src/curses_client/curses_client.c | 33 +++++++++++++++++++++----------
M src/gui_client/gtk_client.c | 10 +++++++---
M src/message.c | 4 ++--
3 files changed, 32 insertions(+), 15 deletions(-)
---
(DIR) diff --git a/src/curses_client/curses_client.c b/src/curses_client/curses_client.c
t@@ -667,13 +667,15 @@ static gboolean ConnectToServer(Player *Play)
static gboolean jet(Player *Play, gboolean AllowReturn)
{
int i, c;
- char text[80];
+ GString *text;
+ text = g_string_new("");
attrset(TextAttr);
clear_bottom();
for (i = 0; i < NumLocation; i++) {
- sprintf(text, "%d. %s", i + 1, Location[i].Name);
- mvaddstr(17 + i / 3, (i % 3) * 20 + 12, text);
+ /* Display of shortcut keys and locations to jet to */
+ dpg_string_sprintf(text, _("%d. %tde"), i + 1, Location[i].Name);
+ mvaddstr(17 + i / 3, (i % 3) * 20 + 12, text->str);
}
attrset(PromptAttr);
t@@ -684,18 +686,24 @@ static gboolean jet(Player *Play, gboolean AllowReturn)
do {
c = bgetch();
if (c >= '1' && c < '1' + NumLocation) {
- addstr(Location[c - '1'].Name);
+ dpg_string_sprintf(text, _("%/Location display/%tde"),
+ Location[c - '1'].Name);
+ addstr(text->str);
if (Play->IsAt != c - '1') {
- sprintf(text, "%d", c - '1');
+ g_string_sprintf(text, "%d", c - '1');
DisplayMode = DM_NONE;
- SendClientMessage(Play, C_NONE, C_REQUESTJET, NULL, text);
- } else
+ SendClientMessage(Play, C_NONE, C_REQUESTJET, NULL, text->str);
+ } else {
c = 0;
- } else
+ }
+ } else {
c = 0;
+ }
} while (c == 0 && !AllowReturn);
curs_set(0);
+ g_string_free(text, TRUE);
+
return (c != 0);
}
t@@ -1068,7 +1076,10 @@ void HandleClientMessage(char *Message, Player *Play)
refresh();
MicroSleep(100000);
}
- print_location(Location[(int)Play->IsAt].Name);
+ text = dpg_strdup_printf(_("%/Current location/%tde"),
+ Location[Play->IsAt].Name);
+ print_location(text);
+ g_free(text);
break;
case C_QUESTION:
pt = Data;
t@@ -1775,7 +1786,9 @@ void print_status(Player *Play, gboolean DispDrug)
Play->Bitches.Carried, Play->CoatSize);
}
mvaddstr(0, Width - 2 - strlen(text->str), text->str);
- print_location(Location[(int)Play->IsAt].Name);
+ dpg_string_sprintf(text, _("%/Current location/%tde"),
+ Location[Play->IsAt].Name);
+ print_location(text->str);
attrset(StatsAttr);
c = 0;
(DIR) diff --git a/src/gui_client/gtk_client.c b/src/gui_client/gtk_client.c
t@@ -1180,8 +1180,9 @@ void DisplayStats(Player *Play, struct StatusWidgets *Status)
text = g_string_new(NULL);
- gtk_label_set_text(GTK_LABEL(Status->Location),
- Location[(int)Play->IsAt].Name);
+ dpg_string_sprintf(text, _("%/Current location/%tde"),
+ Location[Play->IsAt].Name);
+ gtk_label_set_text(GTK_LABEL(Status->Location), text->str);
g_string_sprintf(text, "%s%02d%s", Names.Month, Play->Turn, Names.Year);
gtk_label_set_text(GTK_LABEL(Status->Date), text->str);
t@@ -1441,7 +1442,10 @@ void Jet(GtkWidget *parent)
row = i / boxsize;
col = i % boxsize;
if (AccelChar == '\0') {
- button = gtk_button_new_with_label(Location[i].Name);
+ name = dpg_strdup_printf(_("%/Location to jet to/%tde"),
+ Location[i].Name);
+ button = gtk_button_new_with_label(name);
+ g_free(name);
} else {
button = gtk_button_new_with_label("");
(DIR) diff --git a/src/message.c b/src/message.c
t@@ -1330,8 +1330,8 @@ void FormatFightMessage(Player *To, GString *text, Player *Attacker,
if (AttackName[0]) {
if (!IsCop(Attacker) && brandom(0, 100) < 70
&& Attacker->IsAt >= 0) {
- g_string_sprintfa(text, _("%s has got away to %s!"), AttackName,
- Location[Attacker->IsAt].Name);
+ dpg_string_sprintfa(text, _("%s has got away to %tde!"), AttackName,
+ Location[Attacker->IsAt].Name);
} else {
g_string_sprintfa(text, _("%s has got away!"), AttackName);
}