From 884e1c50146f45de7bf4004575bf30ad139f1f57 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 14 Jan 2024 11:48:42 +0100 Subject: [PATCH] Netconsole: don't process empty input strings Caught by assert in CUtlBuffer ctor when tokenizing the input. --- src/netconsole/netconsole.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/netconsole/netconsole.cpp b/src/netconsole/netconsole.cpp index 4d3fb8bc..c3e29039 100644 --- a/src/netconsole/netconsole.cpp +++ b/src/netconsole/netconsole.cpp @@ -181,7 +181,11 @@ void CNetCon::TermSetup(const bool bAnsiColor) //----------------------------------------------------------------------------- void CNetCon::RunInput(const string& lineInput) { - std::lock_guard l(m_Mutex); + if (lineInput.empty()) + { + // Empty string given, don't process it. + return; + } if (lineInput.compare("nquit") == 0) { @@ -189,6 +193,8 @@ void CNetCon::RunInput(const string& lineInput) return; } + std::lock_guard l(m_Mutex); + if (IsConnected()) { CCommand cmd; @@ -218,7 +224,7 @@ void CNetCon::RunInput(const string& lineInput) cl_rcon::request_t::SERVERDATA_REQUEST_EXECCOMMAND); } } - else if (!lineInput.empty()) // Single arg command query. + else // Single arg command query. { bSend = Serialize(vecMsg, lineInput.c_str(), "", cl_rcon::request_t::SERVERDATA_REQUEST_EXECCOMMAND); }