forked from alterware/iw6-mod
Added more checks to general header strings.
This commit is contained in:
@@ -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<int>(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";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user