From 45f03d7d0b5ee460cba227ef0fd84e839aaa4c72 Mon Sep 17 00:00:00 2001 From: zuojiangjiang Date: Sun, 30 Jan 2022 16:50:31 +0800 Subject: [PATCH 1/3] add nullptr value for pathBox Signed-off-by: zuojiangjiang --- .../distributeddataservice/adapter/security/src/security.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/distributeddataservice/adapter/security/src/security.cpp b/services/distributeddataservice/adapter/security/src/security.cpp index 849c37647..5c98bbc39 100755 --- a/services/distributeddataservice/adapter/security/src/security.cpp +++ b/services/distributeddataservice/adapter/security/src/security.cpp @@ -29,8 +29,8 @@ namespace OHOS::DistributedKv { using namespace DistributedDB; std::atomic_bool Security::isInitialized_ = true; const char * const Security::LABEL_VALUES[S4 + 1] = {}; -const char * const Security::DATA_DE[] = {}; -const char * const Security::DATA_CE[] = {}; +const char * const Security::DATA_DE[] = { nullptr }; +const char * const Security::DATA_CE[] = { nullptr }; Security::Security(const std::string &appId, const std::string &userId, const std::string &dir) { -- Gitee From 2be1368e0adfe1b28f632bb023f8d0e96c68fae1 Mon Sep 17 00:00:00 2001 From: zuojiangjiang Date: Sun, 30 Jan 2022 17:00:35 +0800 Subject: [PATCH 2/3] add nullptr value for pathBox Signed-off-by: zuojiangjiang --- .../adapter/security/src/security.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/services/distributeddataservice/adapter/security/src/security.cpp b/services/distributeddataservice/adapter/security/src/security.cpp index 5c98bbc39..05f95e918 100755 --- a/services/distributeddataservice/adapter/security/src/security.cpp +++ b/services/distributeddataservice/adapter/security/src/security.cpp @@ -180,16 +180,11 @@ const char *Security::Convert2Name(const SecurityOption &option, bool isCE) return nullptr; } - return LABEL_VALUES[option.securityLabel]; + return nullptr; } int Security::Convert2Security(const std::string &name) { - for (int i = 0; i <= S4; i++) { - if (name == LABEL_VALUES[i]) { - return i; - } - } return NOT_SET; } -- Gitee From 18fa7fa9b27347228f4c5b3c4a7b457e60176ce8 Mon Sep 17 00:00:00 2001 From: zuojiangjiang Date: Sun, 30 Jan 2022 17:47:57 +0800 Subject: [PATCH 3/3] add mutex lock when get meta kvstore Signed-off-by: zuojiangjiang --- .../distributeddataservice/app/src/kvstore_meta_manager.cpp | 6 ++++++ .../distributeddataservice/app/src/kvstore_meta_manager.h | 1 + 2 files changed, 7 insertions(+) diff --git a/services/distributeddataservice/app/src/kvstore_meta_manager.cpp b/services/distributeddataservice/app/src/kvstore_meta_manager.cpp index 9ffd34af4..f23caee57 100755 --- a/services/distributeddataservice/app/src/kvstore_meta_manager.cpp +++ b/services/distributeddataservice/app/src/kvstore_meta_manager.cpp @@ -150,6 +150,11 @@ void KvStoreMetaManager::InitMetaParameter() const KvStoreMetaManager::NbDelegate &KvStoreMetaManager::GetMetaKvStore() { + if (metaDelegate_ != nullptr) { + return metaDelegate_; + } + + std::lock_guard lock(mutex_); if (metaDelegate_ == nullptr) { metaDelegate_ = CreateMetaKvStore(); } @@ -178,6 +183,7 @@ KvStoreMetaManager::NbDelegate KvStoreMetaManager::CreateMetaKvStore() return nullptr; } auto release = [this](DistributedDB::KvStoreNbDelegate *delegate) { + ZLOGI("release meta data kv store"); if (delegate == nullptr) { return; } diff --git a/services/distributeddataservice/app/src/kvstore_meta_manager.h b/services/distributeddataservice/app/src/kvstore_meta_manager.h index f4542a36c..5457b8143 100755 --- a/services/distributeddataservice/app/src/kvstore_meta_manager.h +++ b/services/distributeddataservice/app/src/kvstore_meta_manager.h @@ -309,6 +309,7 @@ private: static std::mutex cvMutex_; static MetaDeviceChangeListenerImpl listener_; KvStoreMetaObserver metaObserver_; + std::recursive_mutex mutex_; }; } // namespace DistributedKv } // namespace OHOS -- Gitee