diff options
author | tron <tron@openttd.org> | 2006-04-07 09:07:53 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2006-04-07 09:07:53 +0000 |
commit | 10454a6dd136e4d0abff667c12256f1761078f22 (patch) | |
tree | 5b51a3d0a1e854a6a85712de15b3ef44a75c7e93 | |
parent | 3ef6afdb4d0f3b4c327e8570c123d487b631d49a (diff) | |
download | openttd-10454a6dd136e4d0abff667c12256f1761078f22.tar.xz |
(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
-rw-r--r-- | gui.h | 2 | ||||
-rw-r--r-- | main_gui.c | 2 | ||||
-rw-r--r-- | network_gui.c | 4 |
3 files changed, 4 insertions, 4 deletions
@@ -124,7 +124,7 @@ extern const byte _fios_colors[]; /* network gui */ void ShowNetworkGameWindow(void); -void ShowChatWindow(int maxlen); +void ShowChatWindow(void); /* bridge_gui.c */ void ShowBuildBridgeWindow(uint start, uint end, byte type); diff --git a/main_gui.c b/main_gui.c index 87750ad25..d22931528 100644 --- a/main_gui.c +++ b/main_gui.c @@ -332,7 +332,7 @@ void ShowNetworkChatQueryWindow(byte desttype, byte dest) { _rename_id = desttype + (dest << 8); _rename_what = 2; - ShowChatWindow(150); + ShowChatWindow(); } void ShowNetworkGiveMoneyWindow(byte player) diff --git a/network_gui.c b/network_gui.c index f537a7ebb..adec0c004 100644 --- a/network_gui.c +++ b/network_gui.c @@ -1545,7 +1545,7 @@ static const WindowDesc _chat_window_desc = { ChatWindowWndProc }; -void ShowChatWindow(int maxlen) +void ShowChatWindow(void) { Window *w; @@ -1560,7 +1560,7 @@ void ShowChatWindow(int maxlen) 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); |