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 datetime = get_datetime();
|
||||||
|
|
||||||
const auto protocol = std::to_string(PROTOCOL);
|
const auto protocol = std::to_string(PROTOCOL);
|
||||||
const auto* build_num_ptr = game::LiveStorage_FetchFFotD();
|
const auto* build_num_bptr = game::LiveStorage_FetchFFotD();
|
||||||
const auto build_num = (build_num_ptr)
|
const auto* build_num_eptr = build_num_bptr ? std::find(build_num_bptr, build_num_bptr + 128, '\0') : nullptr;
|
||||||
? std::string_view(build_num_ptr)
|
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";
|
: "unknown_build_number";
|
||||||
|
|
||||||
const auto svr_name = utils::string::strip(svr_name_sv, true);
|
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()));
|
const auto success = game::CL_GetClientNameColorize(0, game::mp::cg->clientNum, buffer.data(), static_cast<int>(buffer.size()));
|
||||||
if (success)
|
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);
|
player_name = get_dvar_string("name", true);
|
||||||
|
|
||||||
if (player_name.empty())
|
if (player_name.empty() || player_name.size() >= 64)
|
||||||
{
|
{
|
||||||
player_name = "unknown_player_name";
|
player_name = "unknown_player_name";
|
||||||
}
|
}
|
||||||
@@ -884,7 +885,7 @@ namespace demo_utils
|
|||||||
? sv_hostname
|
? sv_hostname
|
||||||
: "unknown_server_host_name";
|
: "unknown_server_host_name";
|
||||||
|
|
||||||
if (player_name.empty())
|
if (player_name.empty() || player_name.size() >= 64)
|
||||||
{
|
{
|
||||||
player_name = "unknown_player_name";
|
player_name = "unknown_player_name";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user