From d319ccf1b1dab91690ef68974e7a88c662973594 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=8F=8B=E6=9D=BE?= Date: Sat, 6 Sep 2025 17:16:39 +0800 Subject: [PATCH 1/6] =?UTF-8?q?codex=20Signed-off-by:=20=E9=82=B9=E5=8F=8B?= =?UTF-8?q?=E6=9D=BE=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foundations/ability/log/src/update_log.cpp | 16 ++++++++++++++-- .../firmware/check/include/firmware_icheck.h | 8 +++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/foundations/ability/log/src/update_log.cpp b/foundations/ability/log/src/update_log.cpp index 74b20aa7..bc7979ce 100644 --- a/foundations/ability/log/src/update_log.cpp +++ b/foundations/ability/log/src/update_log.cpp @@ -102,8 +102,20 @@ std::pair UpdateLog::SplitLogByFmtLabel(const std::str // 如果log中没有%{public|private}s,则把log全部内容作为前缀字符串,后缀字符串为空 return std::make_pair(log, ""); } - return std::make_pair(log.substr(0, log.find(fmtLabel, 0)), log.substr(log.find(fmtLabel, 0) + - fmtLabel.length())); + + size_t labelPos = log.find(fmtLabel); + if (labelPos == std::string::npos) { + return std::make_pair(log, ""); + } + + //前缀是[0, labelPos), 后缀是[labelPos + len, end) + size_t labelLen = fmtLabel.length(); + size_t suffixStart = labelPos + labelLen; + if (suffixStart > log.size()) { + return std::make_pair(log, ""); + } + + return std::make_pair(log.substr(0, labelPos), log.substr(suffixStart)); } std::string UpdateLog::GetFmtLabel(const std::string &log) diff --git a/services/firmware/check/include/firmware_icheck.h b/services/firmware/check/include/firmware_icheck.h index ae31f876..dd835d71 100644 --- a/services/firmware/check/include/firmware_icheck.h +++ b/services/firmware/check/include/firmware_icheck.h @@ -164,7 +164,13 @@ private: std::to_string(PORT_NUMBER) + "\r\nConnection: close\r\n\r\n"; SSL_write(ssl, request.c_str(), request.size()); int32_t len = SSL_read(ssl, buffer.data(), JSON_MAX_SIZE); - std::string resultStr = buffer.data(); + ENGINE_CHECK(len > 0, + SSL_shutdown(ssl); + SSL_free(ssl); + SSL_CTX_free(sslCtx); + return -1, + "data is null"); + std::string_view resultStr(buffer.data(), len); size_t index = resultStr.find('{'); if (index != std::string::npos) { buffer.erase(buffer.begin(), buffer.begin() + index); -- Gitee From 412920f3450e7a32c29645da913edfe0126b5e3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=8F=8B=E6=9D=BE?= Date: Tue, 9 Sep 2025 12:10:43 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=91=8A=E8=AD=A6=20Sign?= =?UTF-8?q?ed-off-by:=20=E9=82=B9=E5=8F=8B=E6=9D=BE=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ability/sqlite/core/src/sqlite_db.cpp | 2 +- .../src/firmware_combine_version_utils.cpp | 33 +++++++++---------- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/services/core/ability/sqlite/core/src/sqlite_db.cpp b/services/core/ability/sqlite/core/src/sqlite_db.cpp index 3c80d647..96a2013e 100644 --- a/services/core/ability/sqlite/core/src/sqlite_db.cpp +++ b/services/core/ability/sqlite/core/src/sqlite_db.cpp @@ -65,11 +65,11 @@ bool SqliteDb::DeleteDbStore() bool SqliteDb::Insert(const std::string &tableName, const std::vector &values) { - std::lock_guard lockGuard(writeMutex_); std::shared_ptr dbStore = GetDbStore(); ENGINE_CHECK(dbStore != nullptr, return false, "SqliteDb failed to create: db is null"); int64_t insertNum = 0; + std::lock_guard lockGuard(writeMutex_); int ret = dbStore->BatchInsert(insertNum, tableName, values); ENGINE_CHECK(ret == NativeRdb::E_OK, return false, "SqliteDb failed to insert ret=%{public}d", ret); return true; diff --git a/services/firmware/utils/src/firmware_combine_version_utils.cpp b/services/firmware/utils/src/firmware_combine_version_utils.cpp index 61dbf207..94d3a314 100644 --- a/services/firmware/utils/src/firmware_combine_version_utils.cpp +++ b/services/firmware/utils/src/firmware_combine_version_utils.cpp @@ -55,29 +55,28 @@ void CombinePackageVersionUtils::HandleBaseVersionLog(std::string &baseVersion, { std::string::size_type start = baseVersion.find_last_of("("); std::string::size_type end = baseVersion.find_last_of(")"); - if ((start == std::string::npos) || (end == std::string::npos)) { + if ((start == std::string::npos) || (end == std::string::npos) || start >= end) { return; } - start++; - std::string::size_type mid = start; - bool isNumbers = false; - while (mid < end) { - mid++; - if (isdigit(baseVersion[mid])) { - isNumbers = true; - } else { - if (isNumbers) { - break; - } - } + + // 从start+1开始, 查找数字 + std::string_view viewStr = baseVersion; + const size_t contentStart = start + 1; + size_t numEnd = contentStart; + while (numEnd < end && std::isdigit(static_cast(viewStr[numEnd]))) { + numEnd++; } - if ((mid == end) && (!isNumbers)) { - log = baseVersion.substr(start, mid - start); + + // 如果没有数字 + if (numEnd == contentStart) { + // 整个括号内容当作log + log = std::string(viewStr.substr(contentStart, end - contentStart)); base = ""; return; } - base = baseVersion.substr(start, mid - start); - log = baseVersion.substr(mid, end - mid); + + base = std::string(viewStr.substr(contentStart, numEnd - contentStart)); + log = std::string(viewStr.substr(numEnd, end - numEnd)); } std::string CombinePackageVersionUtils::HandleCustVersion(std::string &custVersion) -- Gitee From d80be4c1995819b69d15778045ae7deff22c8a8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=8F=8B=E6=9D=BE?= Date: Tue, 9 Sep 2025 13:19:50 +0000 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 邹友松 --- foundations/ability/log/src/update_log.cpp | 4 --- .../firmware/check/include/firmware_icheck.h | 5 --- .../src/firmware_combine_version_utils.cpp | 31 ++++++++++--------- 3 files changed, 16 insertions(+), 24 deletions(-) diff --git a/foundations/ability/log/src/update_log.cpp b/foundations/ability/log/src/update_log.cpp index bc7979ce..c97a4bc9 100644 --- a/foundations/ability/log/src/update_log.cpp +++ b/foundations/ability/log/src/update_log.cpp @@ -111,10 +111,6 @@ std::pair UpdateLog::SplitLogByFmtLabel(const std::str //前缀是[0, labelPos), 后缀是[labelPos + len, end) size_t labelLen = fmtLabel.length(); size_t suffixStart = labelPos + labelLen; - if (suffixStart > log.size()) { - return std::make_pair(log, ""); - } - return std::make_pair(log.substr(0, labelPos), log.substr(suffixStart)); } diff --git a/services/firmware/check/include/firmware_icheck.h b/services/firmware/check/include/firmware_icheck.h index dd835d71..495fc1c6 100644 --- a/services/firmware/check/include/firmware_icheck.h +++ b/services/firmware/check/include/firmware_icheck.h @@ -170,11 +170,6 @@ private: SSL_CTX_free(sslCtx); return -1, "data is null"); - std::string_view resultStr(buffer.data(), len); - size_t index = resultStr.find('{'); - if (index != std::string::npos) { - buffer.erase(buffer.begin(), buffer.begin() + index); - } if (len > 0 && ParseJsonFile(buffer, response) == 0) { result = SearchStatus::HAS_NEW_VERSION; errMsg = ""; diff --git a/services/firmware/utils/src/firmware_combine_version_utils.cpp b/services/firmware/utils/src/firmware_combine_version_utils.cpp index 94d3a314..74ccaec9 100644 --- a/services/firmware/utils/src/firmware_combine_version_utils.cpp +++ b/services/firmware/utils/src/firmware_combine_version_utils.cpp @@ -58,25 +58,26 @@ void CombinePackageVersionUtils::HandleBaseVersionLog(std::string &baseVersion, if ((start == std::string::npos) || (end == std::string::npos) || start >= end) { return; } - - // 从start+1开始, 查找数字 - std::string_view viewStr = baseVersion; - const size_t contentStart = start + 1; - size_t numEnd = contentStart; - while (numEnd < end && std::isdigit(static_cast(viewStr[numEnd]))) { - numEnd++; + start++; + std::string::size_type mid = start; + bool isNumbers = false; + while (mid < end) { + if (isdigit(baseVersion[mid])) { + isNumbers = true; + } else { + if (isNumbers) { + break; + } + } + mid++; } - - // 如果没有数字 - if (numEnd == contentStart) { - // 整个括号内容当作log - log = std::string(viewStr.substr(contentStart, end - contentStart)); + if ((mid == end) && (!isNumbers)) { + log = baseVersion.substr(start, mid - start); base = ""; return; } - - base = std::string(viewStr.substr(contentStart, numEnd - contentStart)); - log = std::string(viewStr.substr(numEnd, end - numEnd)); + base = baseVersion.substr(start, mid - start); + log = baseVersion.substr(mid, end - mid); } std::string CombinePackageVersionUtils::HandleCustVersion(std::string &custVersion) -- Gitee From 86e44dc037890bfbd84791ba7d72d9fa837e2e9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=8F=8B=E6=9D=BE?= Date: Wed, 10 Sep 2025 06:54:15 +0000 Subject: [PATCH 4/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9mutex?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 邹友松 --- frameworks/js/napi/session/src/napi_session.cpp | 16 +++++++++------- frameworks/js/napi/update/src/update_session.cpp | 7 +++++-- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/frameworks/js/napi/session/src/napi_session.cpp b/frameworks/js/napi/session/src/napi_session.cpp index 5dab9c2b..ffca775c 100644 --- a/frameworks/js/napi/session/src/napi_session.cpp +++ b/frameworks/js/napi/session/src/napi_session.cpp @@ -61,13 +61,15 @@ void NapiSession::ExecuteWork(napi_env env) } if (sessionParams_.isAsyncCompleteWork && IsWorkExecuteSuccess()) { // 异步搜包完成,需要把businessError设置进来或者超时,才能结束等待 - std::unique_lock lock(conditionVariableMutex_); - auto now = std::chrono::system_clock::now(); - conditionVariable_.wait_until(lock, now + 40000ms, [this] { return asyncExecuteComplete_; }); - ENGINE_LOGI("UpdateSession::ExecuteWork asyncExcuteComplete : %{public}s", - asyncExecuteComplete_ ? "true" : "false"); - if (!asyncExecuteComplete_) { - businessError_.errorNum = CallResult::TIME_OUT; + { + std::unique_lock lock(conditionVariableMutex_); + auto now = std::chrono::system_clock::now(); + conditionVariable_.wait_until(lock, now + 40000ms, [this] { return asyncExecuteComplete_; }); + ENGINE_LOGI("UpdateSession::ExecuteWork asyncExcuteComplete : %{public}s", + asyncExecuteComplete_ ? "true" : "false"); + if (!asyncExecuteComplete_) { + businessError_.errorNum = CallResult::TIME_OUT; + } } } #else diff --git a/frameworks/js/napi/update/src/update_session.cpp b/frameworks/js/napi/update/src/update_session.cpp index 4226b328..0383924b 100644 --- a/frameworks/js/napi/update/src/update_session.cpp +++ b/frameworks/js/napi/update/src/update_session.cpp @@ -66,8 +66,11 @@ napi_value UpdateListener::StartWork(napi_env env, size_t startIndex, const napi PARAM_CHECK_NAPI_CALL(env, NapiCommonUtils::IsTypeOf(env, args[startIndex], napi_function) == ClientStatus::CLIENT_SUCCESS, return nullptr, "Invalid callback type"); - ClientStatus ret = NapiCommonUtils::CreateReference(env, args[startIndex], 1, handlerRef_); - PARAM_CHECK_NAPI_CALL(env, ret == ClientStatus::CLIENT_SUCCESS, return nullptr, "Failed to create reference"); + { + std::lock_guard lock(mutex_); + ClientStatus ret = NapiCommonUtils::CreateReference(env, args[startIndex], 1, handlerRef_); + PARAM_CHECK_NAPI_CALL(env, ret == ClientStatus::CLIENT_SUCCESS, return nullptr, "Failed to create reference"); + } int32_t res = doWorker_(context_); napi_value result; napi_create_int32(env, res, &result); -- Gitee From 2e510b52b29f4042ba47d15e889f71dc2bf4a424 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=8F=8B=E6=9D=BE?= Date: Wed, 10 Sep 2025 08:52:37 +0000 Subject: [PATCH 5/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A3=80=E8=A7=86?= =?UTF-8?q?=E6=84=8F=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 邹友松 --- services/firmware/check/include/firmware_icheck.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/services/firmware/check/include/firmware_icheck.h b/services/firmware/check/include/firmware_icheck.h index 495fc1c6..197c8975 100644 --- a/services/firmware/check/include/firmware_icheck.h +++ b/services/firmware/check/include/firmware_icheck.h @@ -164,12 +164,6 @@ private: std::to_string(PORT_NUMBER) + "\r\nConnection: close\r\n\r\n"; SSL_write(ssl, request.c_str(), request.size()); int32_t len = SSL_read(ssl, buffer.data(), JSON_MAX_SIZE); - ENGINE_CHECK(len > 0, - SSL_shutdown(ssl); - SSL_free(ssl); - SSL_CTX_free(sslCtx); - return -1, - "data is null"); if (len > 0 && ParseJsonFile(buffer, response) == 0) { result = SearchStatus::HAS_NEW_VERSION; errMsg = ""; -- Gitee From e8f2f83468775ac99b185a7bb8d8a083806cdcf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=8F=8B=E6=9D=BE?= Date: Thu, 11 Sep 2025 02:19:11 +0000 Subject: [PATCH 6/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A3=80=E8=A7=86?= =?UTF-8?q?=E6=84=8F=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 邹友松 --- frameworks/js/napi/session/src/napi_session.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/js/napi/session/src/napi_session.cpp b/frameworks/js/napi/session/src/napi_session.cpp index ffca775c..e3b2fa3f 100644 --- a/frameworks/js/napi/session/src/napi_session.cpp +++ b/frameworks/js/napi/session/src/napi_session.cpp @@ -67,9 +67,9 @@ void NapiSession::ExecuteWork(napi_env env) conditionVariable_.wait_until(lock, now + 40000ms, [this] { return asyncExecuteComplete_; }); ENGINE_LOGI("UpdateSession::ExecuteWork asyncExcuteComplete : %{public}s", asyncExecuteComplete_ ? "true" : "false"); - if (!asyncExecuteComplete_) { - businessError_.errorNum = CallResult::TIME_OUT; - } + } + if (!asyncExecuteComplete_) { + businessError_.errorNum = CallResult::TIME_OUT; } } #else -- Gitee