diff --git a/services/distributedhardwarefwkservice/src/componentmanager/component_manager.cpp b/services/distributedhardwarefwkservice/src/componentmanager/component_manager.cpp index 1f6bf903dbd9beb1ac3b3828adc5609105e0b883..a705dbdd3c9539a9b3a06cbe6060e4562b7dbdf2 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 057d5e545c0507fa5cee5dca271b4f2e5b08fe1b..c8591f764c06251b5e74a5c329ff47bf856086ce 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 9c373c070ac6330300d76a474114527e42afa2cf..7f46f0b1e37b641abb56c943ccc8d2ed12c27084 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 6d23615565e3caf78d61cb946abef95b49e6bf49..b4dfeb61b7720caf019d2eec5ee5ce7bc9dfd0e8 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 07cabce942ee363aead2bb4abfab0df3cdc361c2..5d1fbde407fcbbb2fff0c197f134f8948a07a6f8 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 c4f9036394ca8cafed8c20e002e95bc249d89bdb..6cc4ac137e1a17e3c414c492d8ce84258a99ebfe 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); }