diff --git a/napi/include/napi_base.h b/napi/include/napi_base.h index e74983ff49937344bbf06eb0705388e7a3137d19..1e16d18a099fcee59867ff2cb0cdbc78d8a2a938 100644 --- a/napi/include/napi_base.h +++ b/napi/include/napi_base.h @@ -96,8 +96,16 @@ public: static void Complete(napi_env env, napi_status status, void *data) { + if (data == nullptr) { + ENGINE_LOGE("Complete, data is null"); + return; + } constexpr size_t resultLen = 2; T *clientContext = static_cast(data); + if (clientContext == nullptr) { + ENGINE_LOGE("Complete clientContext is null"); + return; + } napi_value finalResult = nullptr; if (clientContext->createValueFunc_ != nullptr) { diff --git a/services/firmware/check/include/firmware_icheck.h b/services/firmware/check/include/firmware_icheck.h index 85f2536e28cbaf4a4e95457ed64aca868fea1c11..16b34cc7063254eccd9006462d5b71761cd80d32 100644 --- a/services/firmware/check/include/firmware_icheck.h +++ b/services/firmware/check/include/firmware_icheck.h @@ -70,6 +70,10 @@ public: void DoAction(FirmwareCheckCallback checkCallback) { FIRMWARE_LOGI("FirmwareCheck::DoAction"); + if (checkCallback.callback == nullptr) { + FIRMWARE_LOGE("FirmwareICheck DoAction callback is null"); + return; + } int32_t engineSocket = socket(AF_INET, SOCK_STREAM, 0); ENGINE_CHECK(engineSocket >= 0, checkCallback.callback(CheckStatus::CHECK_FAIL, duration_, checkResultList_, checkAndAuthInfo_); diff --git a/services/firmware/upgrade/executor/src/firmware_apply_executor.cpp b/services/firmware/upgrade/executor/src/firmware_apply_executor.cpp index 752dfdf0d52a836a1119218b2bab0458994f65d3..b8aa6c9e91f4003bede837f7e9b7258b13c86da4 100644 --- a/services/firmware/upgrade/executor/src/firmware_apply_executor.cpp +++ b/services/firmware/upgrade/executor/src/firmware_apply_executor.cpp @@ -43,6 +43,10 @@ void FirmwareApplyExecutor::DoInstall() firmwareComponentOperator.QueryAll(components_); FIRMWARE_LOGI("Execute size %{public}d", CAST_INT(components_.size())); if (components_.size() == 0) { + if (firmwareApplyCallback_.applyCallback == nullptr) { + FIRMWARE_LOGE("FirmwareApplyExecutor applyCallback is null"); + return; + } firmwareApplyCallback_.applyCallback(false); return; } diff --git a/services/firmware/upgrade/executor/src/firmware_check_executor.cpp b/services/firmware/upgrade/executor/src/firmware_check_executor.cpp index d601eca0ca512b63bdd9893dd58eaaaaac194dba..1ca519e17bc8a5e48355c4aae65fa22a6e1db800 100644 --- a/services/firmware/upgrade/executor/src/firmware_check_executor.cpp +++ b/services/firmware/upgrade/executor/src/firmware_check_executor.cpp @@ -40,6 +40,10 @@ void FirmwareCheckExecutor::Complete() { FIRMWARE_LOGI("FirmwareCheckExecutor::complete"); DelayedSingleton::GetInstance()->SetIsChecking(false); + if (checkComponentCallback_.firmwareComponentCallback == nullptr) { + FIRMWARE_LOGE("FirmwareCheckExecutor firmwareComponentCallback is null"); + return; + } checkComponentCallback_.firmwareComponentCallback(status_, duration_, componentList_, checkAndAuthInfo_); } diff --git a/services/firmware/upgrade/executor/src/firmware_install_executor.cpp b/services/firmware/upgrade/executor/src/firmware_install_executor.cpp index 0062393d52161d2bd1fea187735e18f1e48a15ec..41dc01730b06b96d296237079c72356bdabb9eba 100644 --- a/services/firmware/upgrade/executor/src/firmware_install_executor.cpp +++ b/services/firmware/upgrade/executor/src/firmware_install_executor.cpp @@ -44,6 +44,10 @@ void FirmwareInstallExecutor::DoInstall() progress.status = UpgradeStatus::UPDATE_FAIL; progress.endReason = "no task"; installCallbackInfo_.progress = progress; + if (installCallback_.installCallback == nullptr) { + FIRMWARE_LOGE("FirmwareInstallExecutor DoInstall installCallback is null"); + return; + } installCallback_.installCallback(installCallbackInfo_); return; } @@ -106,6 +110,10 @@ void FirmwareInstallExecutor::HandleInstallProgress(const FirmwareComponent &com // 整体进度插入到 task 表 FirmwareTaskOperator().UpdateProgressByTaskId(tasks_.taskId, taskProgress_.status, taskProgress_.percent); installCallbackInfo_.progress = taskProgress_; + if (installCallback_.installCallback == nullptr) { + FIRMWARE_LOGE("FirmwareInstallExecutor HandleInstallProgress installCallback is null"); + return; + } installCallback_.installCallback(installCallbackInfo_); } @@ -127,6 +135,10 @@ void FirmwareInstallExecutor::HandleInstallResult(const bool result, const Error installCallbackInfo_.progress = taskProgress_; installCallbackInfo_.errorMessage.errorCode = errMsg.errorCode; installCallbackInfo_.errorMessage.errorMessage = errMsg.errorMessage; + if (installCallback_.installCallback == nullptr) { + FIRMWARE_LOGE("FirmwareInstallExecutor HandleInstallResult installCallback is null"); + return; + } installCallback_.installCallback(installCallbackInfo_); } } // namespace UpdateEngine diff --git a/services/firmware/upgrade/install/include/firmware_sys_installer_install.h b/services/firmware/upgrade/install/include/firmware_sys_installer_install.h index ac59770182030ff94bbfc7e5bc9b56ccc7149552..62dd32521c0ba525e0a2a3097977ab9cf99a1c5a 100644 --- a/services/firmware/upgrade/install/include/firmware_sys_installer_install.h +++ b/services/firmware/upgrade/install/include/firmware_sys_installer_install.h @@ -33,7 +33,7 @@ class SysInstallerInstall final : public FirmwareInstall { private: bool IsComponentLegal(const std::vector &componentList) final; bool PerformInstall(const std::vector &componentList) final; - + int32_t StartUpdatePackageZip(std::string &path); int32_t DoSysInstall(const FirmwareComponent &firmwareComponent); void InitInstallProgress(); int32_t WaitInstallResult(); diff --git a/services/firmware/upgrade/install/src/firmware_sys_installer_callback.cpp b/services/firmware/upgrade/install/src/firmware_sys_installer_callback.cpp index 6c3ff608fa6194868078b9b3e8146feb28c54165..f3a87497745a4002c2a9c7772a01730de626b6d3 100644 --- a/services/firmware/upgrade/install/src/firmware_sys_installer_callback.cpp +++ b/services/firmware/upgrade/install/src/firmware_sys_installer_callback.cpp @@ -45,6 +45,10 @@ void SysInstallerCallback::OnUpgradeProgress(SysInstaller::UpdateStatus updateSt installProgress.progress.percent = static_cast(percent); installProgress.errMsg.errorCode = CAST_INT(updateStatus); + if (sysInstallCallback_.onSysInstallerCallback == nullptr) { + FIRMWARE_LOGE("SysInstallerCallback OnUpgradeProgress onSysInstallerCallback is null"); + return; + } sysInstallCallback_.onSysInstallerCallback(installProgress); } } // namespace UpdateEngine diff --git a/services/firmware/upgrade/install/src/firmware_sys_installer_install.cpp b/services/firmware/upgrade/install/src/firmware_sys_installer_install.cpp index 826e131332c323b08b0de742a39d7f25e4cad57e..19a480ff2622dcb092874738f159235c4597cc9c 100644 --- a/services/firmware/upgrade/install/src/firmware_sys_installer_install.cpp +++ b/services/firmware/upgrade/install/src/firmware_sys_installer_install.cpp @@ -45,6 +45,10 @@ bool SysInstallerInstall::PerformInstall(const std::vector &c } uint32_t successCount = 0; for (const auto &component : componentList) { + if (onInstallCallback_.onFirmwareStatus == nullptr) { + FIRMWARE_LOGE("SysInstallerInstall PerformInstall onFirmwareStatus is null"); + continue; + } onInstallCallback_.onFirmwareStatus(UpgradeStatus::INSTALLING); if (DoSysInstall(component) == OHOS_SUCCESS) { successCount ++; @@ -81,6 +85,10 @@ int32_t SysInstallerInstall::DoSysInstall(const FirmwareComponent &firmwareCompo sysComponent.progress = installProgress.progress.percent; FIRMWARE_LOGI("SysInstallerExecutorCallback status=%{public}d , progress=%{public}d", sysComponent.status, sysComponent.progress); + if (onInstallCallback_.onFirmwareProgress == nullptr) { + FIRMWARE_LOGE("SysInstallerExecutorCallback onFirmwareProgress is null"); + return; + } onInstallCallback_.onFirmwareProgress(sysComponent); } }; sptr cb = new SysInstallerCallback(callback); @@ -99,14 +107,22 @@ int32_t SysInstallerInstall::DoSysInstall(const FirmwareComponent &firmwareCompo return OHOS_FAILURE; } - ret = SysInstaller::SysInstallerKitsImpl::GetInstance().StartUpdatePackageZip(sysComponent.spath); + if (StartUpdatePackageZip(sysComponent.spath) != OHOS_SUCCESS) { + return OHOS_FAILURE; + } + return WaitInstallResult(); +} + +int32_t SysInstallerInstall::StartUpdatePackageZip(std::string &path) +{ + auto ret = SysInstaller::SysInstallerKitsImpl::GetInstance().StartUpdatePackageZip(path); if (ret != OHOS_SUCCESS) { errMsg_.errorMessage = "sys installer StartUpdatePackageZip failed"; errMsg_.errorCode = ret; FIRMWARE_LOGE("sys installer StartUpdatePackageZip failed ret = %{public}d", ret); return OHOS_FAILURE; } - return WaitInstallResult(); + return ret; } void SysInstallerInstall::InitInstallProgress() diff --git a/services/utils/src/dupdate_net_manager.cpp b/services/utils/src/dupdate_net_manager.cpp index 80b74b0a0b662491f951f5868fd3cb2c10bae029..0f3626e7163379bde53c9467328235373a121b68 100644 --- a/services/utils/src/dupdate_net_manager.cpp +++ b/services/utils/src/dupdate_net_manager.cpp @@ -98,6 +98,10 @@ bool NetManager::OnNetChange(NetType netType) for (auto iter = netChangeCallbackMap_.begin(); iter != netChangeCallbackMap_.end();) { NetChangeCallback netChangeCallback = iter->second; if (netChangeCallback.netTypes.count(netType) != 0) { + if (netChangeCallback.function == nullptr) { + ENGINE_LOGE("OnNetChange netChangeCallback function is null"); + continue; + } netChangeCallback.function(netType); } iter++;