From 02d6936ea9a1b83f44e4cfba1995b4a7442bc7c8 Mon Sep 17 00:00:00 2001 From: li-tiangang4 Date: Mon, 7 Apr 2025 09:54:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8find=E5=90=8E=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: li-tiangang4 --- .../src/componentmanager/component_manager.cpp | 4 ++++ .../resourcemanager/capability_info_manager.cpp | 4 ++++ .../src/resourcemanager/meta_info_manager.cpp | 4 ++++ .../src/resourcemanager/version_info_manager.cpp | 6 +++++- .../src/transport/dh_comm_tool.cpp | 14 +++++++++++++- .../src/transport/dh_transport.cpp | 14 +++++++++++++- 6 files changed, 43 insertions(+), 3 deletions(-) diff --git a/services/distributedhardwarefwkservice/src/componentmanager/component_manager.cpp b/services/distributedhardwarefwkservice/src/componentmanager/component_manager.cpp index 1f6bf903..a705dbdd 100644 --- a/services/distributedhardwarefwkservice/src/componentmanager/component_manager.cpp +++ b/services/distributedhardwarefwkservice/src/componentmanager/component_manager.cpp @@ -843,6 +843,10 @@ int32_t ComponentManager::CheckDemandStart(const std::string &uuid, const DHType } auto iterLocal = dhVersion.compVersions.find(dhType); + if (iterLocal == dhVersion.compVersions.end()) { + DHLOGE("Not find dhType in local: %{public}#X!", dhType); + return ERR_DH_FWK_TYPE_NOT_EXIST; + } // Check local config if (!iterLocal->second.haveFeature) { enableSource = true; diff --git a/services/distributedhardwarefwkservice/src/resourcemanager/capability_info_manager.cpp b/services/distributedhardwarefwkservice/src/resourcemanager/capability_info_manager.cpp index 057d5e54..c8591f76 100644 --- a/services/distributedhardwarefwkservice/src/resourcemanager/capability_info_manager.cpp +++ b/services/distributedhardwarefwkservice/src/resourcemanager/capability_info_manager.cpp @@ -61,6 +61,10 @@ CapabilityInfoManager::CapabilityInfoManagerEventHandler::CapabilityInfoManagerE void CapabilityInfoManager::CapabilityInfoManagerEventHandler::ProcessEvent( const AppExecFwk::InnerEvent::Pointer &event) { + if (event == nullptr) { + DHLOGE("event is null."); + return; + } uint32_t eventId = event->GetInnerEventId(); auto selfPtr = capabilityInfoMgrWPtr_.lock(); if (!selfPtr) { diff --git a/services/distributedhardwarefwkservice/src/resourcemanager/meta_info_manager.cpp b/services/distributedhardwarefwkservice/src/resourcemanager/meta_info_manager.cpp index 9c373c07..7f46f0b1 100644 --- a/services/distributedhardwarefwkservice/src/resourcemanager/meta_info_manager.cpp +++ b/services/distributedhardwarefwkservice/src/resourcemanager/meta_info_manager.cpp @@ -58,6 +58,10 @@ MetaInfoManager::MetaInfoManagerEventHandler::MetaInfoManagerEventHandler( void MetaInfoManager::MetaInfoManagerEventHandler::ProcessEvent(const AppExecFwk::InnerEvent::Pointer &event) { + if (event == nullptr) { + DHLOGE("event is null."); + return; + } uint32_t eventId = event->GetInnerEventId(); auto selfPtr = metaInfoMgrWPtr_.lock(); if (!selfPtr) { diff --git a/services/distributedhardwarefwkservice/src/resourcemanager/version_info_manager.cpp b/services/distributedhardwarefwkservice/src/resourcemanager/version_info_manager.cpp index 6d236155..b4dfeb61 100644 --- a/services/distributedhardwarefwkservice/src/resourcemanager/version_info_manager.cpp +++ b/services/distributedhardwarefwkservice/src/resourcemanager/version_info_manager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2024 Huawei Device Co., Ltd. + * Copyright (c) 2022-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -49,6 +49,10 @@ VersionInfoManager::VersionInfoManagerEventHandler::VersionInfoManagerEventHandl void VersionInfoManager::VersionInfoManagerEventHandler::ProcessEvent(const AppExecFwk::InnerEvent::Pointer &event) { + if (event == nullptr) { + DHLOGE("event is null."); + return; + } uint32_t eventId = event->GetInnerEventId(); auto selfPtr = versionInfoMgrWPtr_.lock(); if (!selfPtr) { diff --git a/services/distributedhardwarefwkservice/src/transport/dh_comm_tool.cpp b/services/distributedhardwarefwkservice/src/transport/dh_comm_tool.cpp index 07cabce9..5d1fbde4 100644 --- a/services/distributedhardwarefwkservice/src/transport/dh_comm_tool.cpp +++ b/services/distributedhardwarefwkservice/src/transport/dh_comm_tool.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2024-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -159,6 +159,10 @@ DHCommTool::DHCommToolEventHandler::DHCommToolEventHandler(const std::shared_ptr void DHCommTool::DHCommToolEventHandler::ProcessEvent( const AppExecFwk::InnerEvent::Pointer &event) { + if (event == nullptr) { + DHLOGE("event is null."); + return; + } uint32_t eventId = event->GetInnerEventId(); std::shared_ptr commMsg = event->GetSharedObject(); if (commMsg == nullptr) { @@ -200,6 +204,14 @@ void DHCommTool::DHCommToolEventHandler::ProcessFullCapsRsp(const FullCapsRsp &c DHLOGE("Receive remote caps info invalid!"); return; } + if (dhCommToolPtr == nullptr) { + DHLOGE("dhCommToolPtr is null"); + return; + } + if (dhCommToolPtr->GetDHTransportPtr() == nullptr) { + DHLOGE("Can not get Transport ptr"); + return; + } // after receive rsp, close dsoftbus channel DHLOGI("we receive full remote capabilities, close channel, remote networkId: %{public}s", GetAnonyString(capsRsp.networkId).c_str()); diff --git a/services/distributedhardwarefwkservice/src/transport/dh_transport.cpp b/services/distributedhardwarefwkservice/src/transport/dh_transport.cpp index c4f90363..6cc4ac13 100644 --- a/services/distributedhardwarefwkservice/src/transport/dh_transport.cpp +++ b/services/distributedhardwarefwkservice/src/transport/dh_transport.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * Copyright (c) 2024-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -159,6 +159,10 @@ void OnBind(int32_t socket, PeerSocketInfo info) DHLOGE("Can not get DHCommTool ptr"); return; } + if (dhCommToolSPtr->GetDHTransportPtr() == nullptr) { + DHLOGE("Can not get Transport ptr"); + return; + } dhCommToolSPtr->GetDHTransportPtr()->OnSocketOpened(socket, info); } @@ -169,6 +173,10 @@ void OnShutdown(int32_t socket, ShutdownReason reason) DHLOGE("Can not get DHCommTool ptr"); return; } + if (dhCommToolSPtr->GetDHTransportPtr() == nullptr) { + DHLOGE("Can not get Transport ptr"); + return; + } dhCommToolSPtr->GetDHTransportPtr()->OnSocketClosed(socket, reason); } @@ -179,6 +187,10 @@ void OnBytes(int32_t socket, const void *data, uint32_t dataLen) DHLOGE("Can not get DHCommTool ptr"); return; } + if (dhCommToolSPtr->GetDHTransportPtr() == nullptr) { + DHLOGE("Can not get Transport ptr"); + return; + } dhCommToolSPtr->GetDHTransportPtr()->OnBytesReceived(socket, data, dataLen); } -- Gitee