changeset 3469:44801860eafb draft

(svn r4314) -Fix: a buffer overflow of the chat box introduced in r1263. Don't tell the Textbuf an arbitrary number as size of the string buffer, but the real lengthof() it
author tron <tron@openttd.org>
date Fri, 07 Apr 2006 09:07:53 +0000
parents db767e7fa877
children b04ae66805ea
files gui.h main_gui.c network_gui.c
diffstat 3 files changed, 4 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/gui.h
+++ b/gui.h
@@ -124,7 +124,7 @@
 
 /* network gui */
 void ShowNetworkGameWindow(void);
-void ShowChatWindow(int maxlen);
+void ShowChatWindow(void);
 
 /* bridge_gui.c */
 void ShowBuildBridgeWindow(uint start, uint end, byte type);
--- a/main_gui.c
+++ b/main_gui.c
@@ -332,7 +332,7 @@
 {
 	_rename_id = desttype + (dest << 8);
 	_rename_what = 2;
-	ShowChatWindow(150);
+	ShowChatWindow();
 }
 
 void ShowNetworkGiveMoneyWindow(byte player)
--- a/network_gui.c
+++ b/network_gui.c
@@ -1545,7 +1545,7 @@
 	ChatWindowWndProc
 };
 
-void ShowChatWindow(int maxlen)
+void ShowChatWindow(void)
 {
 	Window *w;
 
@@ -1560,7 +1560,7 @@
 	WP(w,querystr_d).wnd_class = WC_MAIN_TOOLBAR;
 	WP(w,querystr_d).wnd_num = 0;
 	WP(w,querystr_d).text.caret = false;
-	WP(w,querystr_d).text.maxlength = maxlen;
+	WP(w,querystr_d).text.maxlength = lengthof(_edit_str_buf);
 	WP(w,querystr_d).text.maxwidth = w->widget[1].right - w->widget[1].left - 2; // widget[1] is the "text box"
 	WP(w,querystr_d).text.buf = _edit_str_buf;
 	UpdateTextBufferSize(&WP(w, querystr_d).text);