From c6bfa82874e6fca477c61968b0e0fc631403d325 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(-) 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-70-g09d2