From: est31 Date: Thu, 6 Oct 2016 01:32:52 +0000 (+0200) Subject: Fix crash regression when chatting in the ncurses console X-Git-Tag: 0.4.15~206 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=de83c29ba0a517630b361ffdbebd1a1f0b5eed4e;p=oweals%2Fminetest.git Fix crash regression when chatting in the ncurses console Fixes #4579, a regression introduced by commit d4c76258e37337ea585cf24d8e05b50a30fa307d "Chat: new settings to prevent spam" --- diff --git a/src/server.cpp b/src/server.cpp index 5b67b321a..a8494f76e 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -2751,19 +2751,21 @@ std::wstring Server::handleChat(const std::string &name, const std::wstring &wna if (ate) return L""; - switch (player->canSendChatMessage()) { - case RPLAYER_CHATRESULT_FLOODING: { - std::wstringstream ws; - ws << L"You cannot send more messages. You are limited to " - << g_settings->getFloat("chat_message_limit_per_10sec") - << " messages per 10 seconds."; - return ws.str(); + if (player) { + switch (player->canSendChatMessage()) { + case RPLAYER_CHATRESULT_FLOODING: { + std::wstringstream ws; + ws << L"You cannot send more messages. You are limited to " + << g_settings->getFloat("chat_message_limit_per_10sec") + << " messages per 10 seconds."; + return ws.str(); + } + case RPLAYER_CHATRESULT_KICK: + DenyAccess_Legacy(player->peer_id, L"You have been kicked due to message flooding."); + return L""; + case RPLAYER_CHATRESULT_OK: break; + default: FATAL_ERROR("Unhandled chat filtering result found."); } - case RPLAYER_CHATRESULT_KICK: - DenyAccess_Legacy(player->peer_id, L"You have been kicked due to message flooding."); - return L""; - case RPLAYER_CHATRESULT_OK: break; - default: FATAL_ERROR("Unhandled chat filtering result found."); } if (m_max_chatmessage_length > 0 && wmessage.length() > m_max_chatmessage_length) {