From f4549549e7c839cb0bbe9d540aeb141bfd49fb88 Mon Sep 17 00:00:00 2001 From: jsj Date: Wed, 2 Mar 2022 12:09:42 +0000 Subject: [PATCH] fixed f3b6d56 from https://gitee.com/jsjzju/aafwk_standard/pulls/949 IssueNo:#I4W1B7 Description: Fix crash caused by SetANRMissionByProcessID Sig:SIG_ApplicationFramework Feature or Bugfix:Bugfix Binary Source:No Signed-off-by: jsj Change-Id: Id11a89bfea73b9c1e9a8a5f15480bac461321ce8 --- .../src/ability_manager_service.cpp | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index 0721fe6e25..b35920e14c 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -4423,20 +4423,30 @@ bool AbilityManagerService::VerifyUriPermisson(const AbilityRequest &abilityRequ bool AbilityManagerService::SetANRMissionByProcessID(int pid) { + HILOG_INFO("start."); + if (appScheduler_ == nullptr || currentMissionListManager_ == nullptr) { + HILOG_ERROR("null point."); + return false; + } std::vector> tokens; if (appScheduler_->GetAbilityRecordsByProcessID(pid, tokens) != ERR_OK) { HILOG_ERROR("Get ability record failed."); return false; } - if (appScheduler_) { - for (auto &item : tokens) { - auto abilityRecord = currentMissionListManager_->GetAbilityRecordByToken(item); - auto mission = abilityRecord->GetMission(); - mission->SetANRState(); + for (auto &item : tokens) { + auto abilityRecord = currentMissionListManager_->GetAbilityRecordByToken(item); + if (abilityRecord == nullptr) { + HILOG_WARN("abilityRecord is nullptr."); + continue; } - return true; + auto mission = abilityRecord->GetMission(); + if (mission == nullptr) { + HILOG_WARN("mission is nullptr."); + continue; + } + mission->SetANRState(); } - return false; + return true; } void AbilityManagerService::StartupResidentProcess(int userId)