From 8ad56e8eda4a63e9a81c275e4eb26e9239237ad4 Mon Sep 17 00:00:00 2001 From: gcontini <1121667+gcontini@users.noreply.github.com> Date: 周六, 28 11月 2020 09:31:41 +0800 Subject: [PATCH] replace strncpy with a more safe alternative --- src/library/licensecc.cpp | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/library/licensecc.cpp b/src/library/licensecc.cpp index f9807a2..2642811 100644 --- a/src/library/licensecc.cpp +++ b/src/library/licensecc.cpp @@ -18,6 +18,7 @@ #include <licensecc_properties.h> #include "base/logger.h" +#include "base/string_utils.h" #include "hw_identifier/hw_identifier_facade.hpp" #include "os/execution_environment.hpp" #include "limits/license_verifier.hpp" @@ -34,7 +35,7 @@ if (*bufSize > LCC_API_PC_IDENTIFIER_SIZE && chbuffer != nullptr) { try { const string pc_id = license::hw_identifier::HwIdentifierFacade::generate_user_pc_signature(pc_id_method); - strncpy(chbuffer, pc_id.c_str(), *bufSize); + license::mstrlcpy(chbuffer, pc_id.c_str(), *bufSize); result = true; } catch (const std::exception& ex) { LOG_ERROR("Error calculating hw_identifier: %s", ex.what()); @@ -45,8 +46,8 @@ } else { *bufSize = LCC_API_PC_IDENTIFIER_SIZE + 1; } + static const license::os::ExecutionEnvironment exec_env; if (execution_environment_info != nullptr) { - const license::os::ExecutionEnvironment exec_env; execution_environment_info->cloud_provider = exec_env.cloud_provider(); execution_environment_info->virtualization = exec_env.virtualization(); execution_environment_info->virtualization_detail = exec_env.virtualization_detail(); -- Gitblit v1.9.1