From e4d4e13e15385ea6628c8d6ae54a697ad69f8dc9 Mon Sep 17 00:00:00 2001 From: Darkvater Date: Sun, 14 Jan 2007 21:32:13 +0000 Subject: (svn r8132) -Fix (r6824): The game could crash when the chat key () is pressed too vehemently during the join of the game. Your client's id does not exist in the clients list yet, and returns NULL. --- src/main_gui.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/main_gui.cpp') diff --git a/src/main_gui.cpp b/src/main_gui.cpp index b333d6ec1..e88a306c5 100644 --- a/src/main_gui.cpp +++ b/src/main_gui.cpp @@ -2302,6 +2302,8 @@ static void MainWindowWndProc(Window *w, WindowEvent *e) const NetworkClientInfo *cio = NetworkFindClientInfoFromIndex(_network_own_client_index); bool teamchat = false; + if (cio == NULL) break; + /* Only players actually playing can speak to team. Eg spectators cannot */ if (_patches.prefer_teamchat && IsValidPlayer(cio->client_playas)) { const NetworkClientInfo *ci; @@ -2323,8 +2325,10 @@ static void MainWindowWndProc(Window *w, WindowEvent *e) case WKC_CTRL | WKC_RETURN: case WKC_CTRL | 'T': // send text to all team mates if (_networking) { - const NetworkClientInfo *ci = NetworkFindClientInfoFromIndex(_network_own_client_index); - ShowNetworkChatQueryWindow(DESTTYPE_TEAM, ci->client_playas); + const NetworkClientInfo *cio = NetworkFindClientInfoFromIndex(_network_own_client_index); + if (cio == NULL) break; + + ShowNetworkChatQueryWindow(DESTTYPE_TEAM, cio->client_playas); } break; #endif -- cgit v1.2.3-54-g00ecf