From 09b121a763408b0d6284a4ad9db369fb54f09eee Mon Sep 17 00:00:00 2001 From: Caball009 <82909616+Caball009@users.noreply.github.com> Date: Thu, 23 Jul 2026 14:07:08 +0200 Subject: [PATCH] Added more checks to general header strings. --- src/client/component/demo_utils.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/client/component/demo_utils.cpp b/src/client/component/demo_utils.cpp index ef92fb2..859dd5f 100644 --- a/src/client/component/demo_utils.cpp +++ b/src/client/component/demo_utils.cpp @@ -711,9 +711,10 @@ namespace demo_utils const auto datetime = get_datetime(); const auto protocol = std::to_string(PROTOCOL); - const auto* build_num_ptr = game::LiveStorage_FetchFFotD(); - const auto build_num = (build_num_ptr) - ? std::string_view(build_num_ptr) + const auto* build_num_bptr = game::LiveStorage_FetchFFotD(); + const auto* build_num_eptr = build_num_bptr ? std::find(build_num_bptr, build_num_bptr + 128, '\0') : nullptr; + const auto build_num = (build_num_bptr && std::distance(build_num_bptr, build_num_eptr) > 0 && std::distance(build_num_bptr, build_num_eptr) < 128) + ? std::string_view(build_num_bptr, build_num_eptr) : "unknown_build_number"; const auto svr_name = utils::string::strip(svr_name_sv, true); @@ -771,14 +772,14 @@ namespace demo_utils const auto success = game::CL_GetClientNameColorize(0, game::mp::cg->clientNum, buffer.data(), static_cast(buffer.size())); if (success) { - player_name = std::string_view(buffer.data()); + player_name = std::string_view(buffer.begin(), std::find(buffer.begin(), buffer.end(), '\0')); } - if (player_name.empty()) + if (player_name.empty() || player_name.size() == buffer.size()) { player_name = get_dvar_string("name", true); - if (player_name.empty()) + if (player_name.empty() || player_name.size() >= 64) { player_name = "unknown_player_name"; } @@ -884,7 +885,7 @@ namespace demo_utils ? sv_hostname : "unknown_server_host_name"; - if (player_name.empty()) + if (player_name.empty() || player_name.size() >= 64) { player_name = "unknown_player_name"; }