From 2cde54cf302b080f065585cd6ca04f90bd931f62 Mon Sep 17 00:00:00 2001 From: dijunkun Date: Tue, 13 Aug 2024 17:07:19 +0800 Subject: [PATCH] [fix] call memset() before using strncpy() --- src/single_window/render.cpp | 3 +++ src/single_window/render_callback_func.cpp | 1 + thirdparty/projectx | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/single_window/render.cpp b/src/single_window/render.cpp index abb8413..5be577e 100644 --- a/src/single_window/render.cpp +++ b/src/single_window/render.cpp @@ -74,7 +74,9 @@ int Render::SaveSettingsIntoCacheFile() { } fseek(cd_cache_file_, 0, SEEK_SET); + memset(&cd_cache_.client_id, 0, sizeof(cd_cache_.client_id)); strncpy(cd_cache_.client_id, client_id_, sizeof(client_id_)); + memset(&cd_cache_.password, 0, sizeof(cd_cache_.password)); strncpy(cd_cache_.password, password_saved_.c_str(), password_saved_.length()); memcpy(&cd_cache_.language, &language_button_value_, @@ -125,6 +127,7 @@ int Render::LoadSettingsFromCacheFile() { fread(&cd_cache_, sizeof(cd_cache_), 1, cd_cache_file_); fclose(cd_cache_file_); + memset(&cd_cache_.client_id, 0, sizeof(cd_cache_.client_id)); strncpy(client_id_, cd_cache_.client_id, sizeof(client_id_)); password_saved_ = cd_cache_.password; language_button_value_ = cd_cache_.language; diff --git a/src/single_window/render_callback_func.cpp b/src/single_window/render_callback_func.cpp index 2bfebbe..965db97 100644 --- a/src/single_window/render_callback_func.cpp +++ b/src/single_window/render_callback_func.cpp @@ -237,6 +237,7 @@ void Render::NetStatusReport(int client_id, TraversalMode mode, Render *render = (Render *)user_data; if (client_id != 0 && 0 == strcmp(render->client_id_, "")) { std::string client_id_s = std::to_string(client_id); + memset(&render->client_id_, 0, sizeof(render->client_id_)); strncpy(render->client_id_, client_id_s.c_str(), sizeof(render->client_id_)); LOG_INFO("Use client id [{}] and save id into cache file", client_id_s); diff --git a/thirdparty/projectx b/thirdparty/projectx index e2e053a..5f8e60d 160000 --- a/thirdparty/projectx +++ b/thirdparty/projectx @@ -1 +1 @@ -Subproject commit e2e053a2853ded5f5f47f4f1d7e78f172f1245c5 +Subproject commit 5f8e60d1c880ef096a5fb1c0c8ed7f5faecf3449