From e0fce6cffb6d3d6fe6b10aafbbadd0b437ddd8ed Mon Sep 17 00:00:00 2001 From: anchi Date: Tue, 8 Apr 2025 16:05:37 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=91=8A=E8=AD=A6=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: anchi --- services/native/src/work_policy_manager.cpp | 5 +++-- services/native/src/work_scheduler_service.cpp | 5 +++-- services/native/src/work_status.cpp | 4 +++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/services/native/src/work_policy_manager.cpp b/services/native/src/work_policy_manager.cpp index a2f3d2a..35a6508 100644 --- a/services/native/src/work_policy_manager.cpp +++ b/services/native/src/work_policy_manager.cpp @@ -253,8 +253,9 @@ bool WorkPolicyManager::StopAndClearWorks(int32_t uid) { WS_HILOGD("enter"); std::lock_guard lock(uidMapMutex_); - if (uidQueueMap_.count(uid) > 0) { - auto queue = uidQueueMap_.at(uid); + auto iter = uidQueueMap_.find(uid); + if (iter != uidQueueMap_.end()) { + auto queue = iter->second; if (!queue) { WS_HILOGE("StopAndClearWorks failed, queue is nullptr"); return false; diff --git a/services/native/src/work_scheduler_service.cpp b/services/native/src/work_scheduler_service.cpp index 84d1b26..ca9315b 100644 --- a/services/native/src/work_scheduler_service.cpp +++ b/services/native/src/work_scheduler_service.cpp @@ -1107,7 +1107,7 @@ void WorkSchedulerService::DumpProcessWorks(const std::string &bundleName, const void WorkSchedulerService::DumpRunningWorks(const std::string &uidStr, const std::string &option, std::string &result) { - if (uidStr.empty() || option.empty()) { + if (!std::all_of(uidStr.begin(), uidStr.end(), ::isdigit) || option.empty()) { result.append("param error"); return; } @@ -1522,7 +1522,8 @@ bool WorkSchedulerService::LoadSa(std::shared_ptr workStatus, const void WorkSchedulerService::DumpLoadSaWorks(const std::string &saIdStr, const std::string &uidStr, std::string &result) { - if (saIdStr.empty() || uidStr.empty()) { + if (!std::all_of(saIdStr.begin(), saIdStr.end(), ::isdigit) + || !std::all_of(uidStr.begin(), uidStr.end(), ::isdigit)) { result.append("param error."); return; } diff --git a/services/native/src/work_status.cpp b/services/native/src/work_status.cpp index 4d37c8a..ee3dd10 100644 --- a/services/native/src/work_status.cpp +++ b/services/native/src/work_status.cpp @@ -109,7 +109,9 @@ int32_t WorkStatus::OnConditionChanged(WorkCondition::Type &type, shared_ptr lock(conditionMapMutex_); - if (conditionMap_.count(type) > 0) { + if (conditionMap_.count(type) > 0 + && type >= WorkCondition::Type::NETWORK + && type <= WorkCondition::Type::UNKNOWN) { conditionMap_.at(type) = value; } else { conditionMap_.emplace(type, value); -- Gitee From ff67f824abc0397706cb2da5116821362906c880 Mon Sep 17 00:00:00 2001 From: anchi Date: Wed, 9 Apr 2025 10:12:15 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=91=8A=E8=AD=A6=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: anchi --- interfaces/kits/js/napi/src/get_work_status.cpp | 4 +++- interfaces/kits/js/napi/src/is_last_work_time_out.cpp | 4 +++- interfaces/kits/js/napi/src/obtain_all_works.cpp | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/interfaces/kits/js/napi/src/get_work_status.cpp b/interfaces/kits/js/napi/src/get_work_status.cpp index 83e15fe..4db00c2 100644 --- a/interfaces/kits/js/napi/src/get_work_status.cpp +++ b/interfaces/kits/js/napi/src/get_work_status.cpp @@ -76,7 +76,9 @@ napi_value GetWorkStatus(napi_env env, napi_callback_info info) // Get params. GetWorkStatusParamsInfo params; if (ParseParameters(env, info, params) == nullptr) { - return Common::JSParaError(env, params.callback); + napi_value ret = Common::JSParaError(env, params.callback); + napi_delete_reference(env, params.callback); + return ret; } napi_value promise = nullptr; diff --git a/interfaces/kits/js/napi/src/is_last_work_time_out.cpp b/interfaces/kits/js/napi/src/is_last_work_time_out.cpp index e0c5ca6..30751dc 100644 --- a/interfaces/kits/js/napi/src/is_last_work_time_out.cpp +++ b/interfaces/kits/js/napi/src/is_last_work_time_out.cpp @@ -76,7 +76,9 @@ napi_value IsLastWorkTimeOut(napi_env env, napi_callback_info info) // Get params. IsLastWorkTimeOutParamsInfo params; if (ParseParameters(env, info, params) == nullptr) { - return Common::JSParaError(env, params.callback); + napi_value ret = Common::JSParaError(env, params.callback); + napi_delete_reference(env, params.callback); + return ret; } napi_value promise = nullptr; diff --git a/interfaces/kits/js/napi/src/obtain_all_works.cpp b/interfaces/kits/js/napi/src/obtain_all_works.cpp index 440562b..cf1495e 100644 --- a/interfaces/kits/js/napi/src/obtain_all_works.cpp +++ b/interfaces/kits/js/napi/src/obtain_all_works.cpp @@ -57,7 +57,9 @@ napi_value ObtainAllWorks(napi_env env, napi_callback_info info) // Get params. napi_ref callback = nullptr; if (ParseParameters(env, info, callback) == nullptr) { - return Common::JSParaError(env, callback); + napi_value ret = Common::JSParaError(env, callback); + napi_delete_reference(env, callback); + return ret; } napi_value promise = nullptr; -- Gitee