diff --git a/frameworks/native/ability/native/form_runtime/cj_form_extension.cpp b/frameworks/native/ability/native/form_runtime/cj_form_extension.cpp index 2639d2cfe227b12657f3bab68f4559e63e1490a9..44ae6865384575865c9c09c5eab7dbb3eef1f524 100644 --- a/frameworks/native/ability/native/form_runtime/cj_form_extension.cpp +++ b/frameworks/native/ability/native/form_runtime/cj_form_extension.cpp @@ -60,6 +60,10 @@ void CJFormExtension::Init(const std::shared_ptr &record, TAG_LOGD(AAFwkTag::FORM_EXT, "call"); FormExtension::Init(record, application, handler, token); // init and bindContext + if (abilityInfo_ == nullptr) { + TAG_LOGE(AAFwkTag::FORM_EXT, "abilityInfo_ is nullptr"); + return; + } int32_t ret = cjObj_.Init(abilityInfo_->name, this); if (ret != 0) { TAG_LOGE(AAFwkTag::FORM_EXT, "cjFormExtension Init failed"); @@ -104,7 +108,12 @@ void CJFormExtension::OnStop() { TAG_LOGD(AAFwkTag::FORM_EXT, "call"); cjObj_.OnStop(); - bool ret = ConnectionManager::GetInstance().DisconnectCaller(GetContext()->GetToken()); + auto context = GetContext(); + if (context == nullptr) { + TAG_LOGE(AAFwkTag::FORM_EXT, "context is nullptr"); + return; + } + bool ret = ConnectionManager::GetInstance().DisconnectCaller(context->GetToken()); if (ret) { ConnectionManager::GetInstance().ReportConnectionLeakEvent(getpid(), gettid()); TAG_LOGD(AAFwkTag::FORM_EXT, "disconnected failed"); @@ -159,8 +168,16 @@ void CJFormExtension::OnConfigurationUpdated(const AppExecFwk::Configuration& co { FormExtension::OnConfigurationUpdated(configuration); TAG_LOGD(AAFwkTag::FORM_EXT, "call"); - - auto fullConfig = GetContext()->GetConfiguration(); + auto context = GetContext(); + if (context == nullptr) { + TAG_LOGE(AAFwkTag::FORM_EXT, "context is nullptr"); + return; + } + auto fullConfig = context->GetConfiguration(); + if (fullConfig == nullptr) { + TAG_LOGE(AAFwkTag::FORM_EXT, "fullConfig is nullptr"); + return; + } cjObj_.OnConfigurationUpdate(fullConfig); }