From 5e51654d361de498e98abc6e4c4f5930bf975a83 Mon Sep 17 00:00:00 2001 From: Wei Jiangang Date: Wed, 29 May 2024 11:00:16 +0800 Subject: [PATCH] Relase handle when dlerror return non-nullptr Signed-off-by: Wei Jiangang --- ...dle-when-dlerror-returns-non-nullptr.patch | 25 +++++++++++++++++++ device_manager.spec | 6 ++++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 0005-release-handle-when-dlerror-returns-non-nullptr.patch diff --git a/0005-release-handle-when-dlerror-returns-non-nullptr.patch b/0005-release-handle-when-dlerror-returns-non-nullptr.patch new file mode 100644 index 0000000..4aa8a10 --- /dev/null +++ b/0005-release-handle-when-dlerror-returns-non-nullptr.patch @@ -0,0 +1,25 @@ +From 4c6bb127d9b70a31625d3aa58ecea9efea813465 Mon Sep 17 00:00:00 2001 +From: Wei Jiangang +Date: Wed, 29 May 2024 10:53:07 +0800 +Subject: [PATCH] release handle when dlerror returns non-nullptr + +Signed-off-by: Wei Jiangang +--- + services/service/src/device_manager_service.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/services/service/src/device_manager_service.cpp b/services/service/src/device_manager_service.cpp +index f167f719..b07b8574 100755 +--- a/services/service/src/device_manager_service.cpp ++++ b/services/service/src/device_manager_service.cpp +@@ -407,6 +407,7 @@ bool DeviceManagerService::IsDMServiceImplReady() + dlerror(); + auto func = (CreateDMServiceFuncPtr)dlsym(so_handle, "CreateDMServiceObject"); + if (dlerror() != nullptr || func == nullptr) { ++ dlclose(so_handle); + LOGE("Create object function is not exist."); + return false; + } +-- +2.39.1 + diff --git a/device_manager.spec b/device_manager.spec index 2165571..1c821cb 100644 --- a/device_manager.spec +++ b/device_manager.spec @@ -8,7 +8,7 @@ Name: distributedhardware_device_manager Version: 1.0.0 -Release: 5 +Release: 6 Summary: Distributed middleware used components. License: Apache-2.0 Url: https://gitee.com/openharmony/ @@ -22,6 +22,7 @@ Patch1: 0001-remove-dependency-and-adapt-for-build-device_manager.patch Patch2: 0002-device-manager-only-support-for-network.patch Patch3: 0003-Fix-crash-for-nullptr-in-EstablishAuthChannel.patch Patch4: 0004-Add-placeholder-for-the-string-of-params.patch +Patch5: 0005-release-handle-when-dlerror-returns-non-nullptr.patch BuildRequires: gcc, make, hilog, kernel-devel, uname-build-checks BuildRequires: distributed-build, distributed-beget @@ -58,6 +59,7 @@ cp -rf %{_builddir}/build/openeuler/compiler_gn/* %{_builddir} %patch -P2 -p1 -d %{distributedhardware_dir}/device_manager %patch -P3 -p1 -d %{distributedhardware_dir}/device_manager %patch -P4 -p1 -d %{distributedhardware_dir}/device_manager +%patch -P5 -p1 -d %{distributedhardware_dir}/device_manager %setup -q -D -T -a 2 -c -n %{third_party_dir}/ @@ -120,6 +122,8 @@ ln -s /usr/include/device_manager %{buildroot}%{build_opt}/openeuler/compiler_gn /system/* %changelog +* Wed May 29 2024 wei_jiangang - 1.0.0-6 +- release handle when dlerror returns non-nullptr * Mon Apr 1 2024 wei_jiangang - 1.0.0-5 - Add placeholder for the string of params * Wed Mar 27 2024 wei_jiangang - 1.0.0-4 -- Gitee