From 0e8fdb3284dc0a05d740409a0db3452565a9db75 Mon Sep 17 00:00:00 2001 From: zhaowenli Date: Tue, 24 Dec 2024 15:23:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E5=80=BC=E7=B1=BB=E5=9E=8B=E8=B5=8B?= =?UTF-8?q?=E4=BA=88=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhaowenli --- .../accesstoken/include/access_token_error.h | 1 + .../innerkits/privacy/include/privacy_error.h | 1 + .../main/cpp/src/callback/callback_manager.cpp | 7 +++---- .../cpp/src/permission/permission_manager.cpp | 1 - .../active/active_status_callback_manager.cpp | 5 ++++- .../unittest/permission_record_manager_test.cpp | 17 +++++++++-------- 6 files changed, 18 insertions(+), 14 deletions(-) diff --git a/interfaces/innerkits/accesstoken/include/access_token_error.h b/interfaces/innerkits/accesstoken/include/access_token_error.h index 2b1c0ed0c..9f0fd9a91 100644 --- a/interfaces/innerkits/accesstoken/include/access_token_error.h +++ b/interfaces/innerkits/accesstoken/include/access_token_error.h @@ -77,6 +77,7 @@ enum AccessTokenError { ERR_USER_POLICY_INITIALIZED, ERR_USER_POLICY_NOT_INITIALIZED, ERR_REMOTE_CONNECTION, + ERR_ADD_DEATH_RECIPIENT_FAILED, }; } // namespace AccessToken } // namespace Security diff --git a/interfaces/innerkits/privacy/include/privacy_error.h b/interfaces/innerkits/privacy/include/privacy_error.h index dd56f19e5..af25d0c18 100644 --- a/interfaces/innerkits/privacy/include/privacy_error.h +++ b/interfaces/innerkits/privacy/include/privacy_error.h @@ -63,6 +63,7 @@ enum PrivacyError { ERR_EDM_POLICY_CHECK_FAILED, ERR_PRIVACY_POLICY_CHECK_FAILED, ERR_REMOTE_CONNECTION, + ERR_ADD_DEATH_RECIPIENT_FAILED, }; } // namespace AccessToken } // namespace Security diff --git a/services/accesstokenmanager/main/cpp/src/callback/callback_manager.cpp b/services/accesstokenmanager/main/cpp/src/callback/callback_manager.cpp index bdb2c10c1..57480ea48 100644 --- a/services/accesstokenmanager/main/cpp/src/callback/callback_manager.cpp +++ b/services/accesstokenmanager/main/cpp/src/callback/callback_manager.cpp @@ -76,9 +76,9 @@ int32_t CallbackManager::AddCallback(const PermStateChangeScope& scopeRes, const ACCESSTOKEN_LOG_ERROR(LABEL, "Callback size has reached limitation"); return AccessTokenError::ERR_CALLBACKS_EXCEED_LIMITATION; } - int32_t ret = callback->AddDeathRecipient(callbackDeathRecipient_); - if (ret != ERR_NONE) { - ACCESSTOKEN_LOG_ERROR(LABEL, "add death recipient failed ret is %{public}d", ret); + if (!callback->AddDeathRecipient(callbackDeathRecipient_)) { + ACCESSTOKEN_LOG_ERROR(LABEL, "add death recipient failed."); + return AccessTokenError::ERR_ADD_DEATH_RECIPIENT_FAILED; } CallbackRecord recordInstance; @@ -87,7 +87,6 @@ int32_t CallbackManager::AddCallback(const PermStateChangeScope& scopeRes, const callbackInfoList_.emplace_back(recordInstance); - ACCESSTOKEN_LOG_INFO(LABEL, "RecordInstance is added"); return RET_SUCCESS; } diff --git a/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp b/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp index a8000ec41..648d45639 100644 --- a/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp +++ b/services/accesstokenmanager/main/cpp/src/permission/permission_manager.cpp @@ -627,7 +627,6 @@ int32_t PermissionManager::ScopeFilter(const PermStateChangeScope& scopeSrc, Per int32_t PermissionManager::AddPermStateChangeCallback( const PermStateChangeScope& scope, const sptr& callback) { - ACCESSTOKEN_LOG_INFO(LABEL, "Called"); PermStateChangeScope scopeRes; int32_t result = ScopeFilter(scope, scopeRes); if (result != RET_SUCCESS) { diff --git a/services/privacymanager/src/active/active_status_callback_manager.cpp b/services/privacymanager/src/active/active_status_callback_manager.cpp index ff5f794db..5e4cdb5ec 100644 --- a/services/privacymanager/src/active/active_status_callback_manager.cpp +++ b/services/privacymanager/src/active/active_status_callback_manager.cpp @@ -79,7 +79,10 @@ int32_t ActiveStatusCallbackManager::AddCallback( ACCESSTOKEN_LOG_ERROR(LABEL, "List size has reached max value"); return PrivacyError::ERR_CALLBACKS_EXCEED_LIMITATION; } - callback->AddDeathRecipient(callbackDeathRecipient_); + if (!callback->AddDeathRecipient(callbackDeathRecipient_)) { + ACCESSTOKEN_LOG_ERROR(LABEL, "add death recipient failed."); + return PrivacyError::ERR_ADD_DEATH_RECIPIENT_FAILED; + } CallbackData recordInstance; recordInstance.registerTokenId = regiterTokenId; diff --git a/services/privacymanager/test/unittest/permission_record_manager_test.cpp b/services/privacymanager/test/unittest/permission_record_manager_test.cpp index 9e3b06a65..5f0f2fb77 100644 --- a/services/privacymanager/test/unittest/permission_record_manager_test.cpp +++ b/services/privacymanager/test/unittest/permission_record_manager_test.cpp @@ -240,8 +240,9 @@ HWTEST_F(PermissionRecordManagerTest, RegisterPermActiveStatusCallback002, TestS for (size_t i = 0; i < MAX_CALLBACK_SIZE; ++i) { sptr callback = new (std::nothrow) PermActiveStatusChangeCallback(); ASSERT_NE(nullptr, callback); - ASSERT_EQ(RET_SUCCESS, PermissionRecordManager::GetInstance().RegisterPermActiveStatusCallback( - GetSelfTokenID(), permList, callback->AsObject())); + ASSERT_EQ(ERR_ADD_DEATH_RECIPIENT_FAILED, + PermissionRecordManager::GetInstance().RegisterPermActiveStatusCallback( + GetSelfTokenID(), permList, callback->AsObject())); callbacks.emplace_back(callback); } @@ -373,7 +374,7 @@ HWTEST_F(PermissionRecordManagerTest, StartUsingPermissionTest004, TestSize.Leve std::vector permList = {"ohos.permission.MICROPHONE"}; sptr callback = new (std::nothrow) PermActiveStatusChangeCallback(); ASSERT_NE(nullptr, callback); - ASSERT_EQ(RET_SUCCESS, PermissionRecordManager::GetInstance().RegisterPermActiveStatusCallback( + ASSERT_EQ(ERR_ADD_DEATH_RECIPIENT_FAILED, PermissionRecordManager::GetInstance().RegisterPermActiveStatusCallback( GetSelfTokenID(), permList, callback->AsObject())); AccessTokenID tokenId = AccessTokenKit::GetHapTokenID(g_InfoParms1.userID, g_InfoParms1.bundleName, @@ -412,7 +413,7 @@ HWTEST_F(PermissionRecordManagerTest, StartUsingPermissionTest005, TestSize.Leve std::vector permList = {"ohos.permission.MICROPHONE"}; sptr callback = new (std::nothrow) PermActiveStatusChangeCallback(); ASSERT_NE(nullptr, callback); - ASSERT_EQ(RET_SUCCESS, PermissionRecordManager::GetInstance().RegisterPermActiveStatusCallback( + ASSERT_EQ(ERR_ADD_DEATH_RECIPIENT_FAILED, PermissionRecordManager::GetInstance().RegisterPermActiveStatusCallback( GetSelfTokenID(), permList, callback->AsObject())); AccessTokenID tokenId = AccessTokenKit::GetHapTokenID(g_InfoParms1.userID, g_InfoParms1.bundleName, @@ -452,7 +453,7 @@ HWTEST_F(PermissionRecordManagerTest, StartUsingPermissionTest006, TestSize.Leve std::vector permList = {"ohos.permission.LOCATION"}; sptr callback = new (std::nothrow) PermActiveStatusChangeCallback(); ASSERT_NE(nullptr, callback); - ASSERT_EQ(RET_SUCCESS, PermissionRecordManager::GetInstance().RegisterPermActiveStatusCallback( + ASSERT_EQ(ERR_ADD_DEATH_RECIPIENT_FAILED, PermissionRecordManager::GetInstance().RegisterPermActiveStatusCallback( GetSelfTokenID(), permList, callback->AsObject())); AccessTokenID tokenId = AccessTokenKit::GetHapTokenID(g_InfoParms1.userID, g_InfoParms1.bundleName, @@ -509,7 +510,7 @@ HWTEST_F(PermissionRecordManagerTest, StartUsingPermissionTest008, TestSize.Leve std::vector permList = {"ohos.permission.CAMERA"}; sptr callback = new (std::nothrow) PermActiveStatusChangeCallback(); ASSERT_NE(nullptr, callback); - ASSERT_EQ(RET_SUCCESS, PermissionRecordManager::GetInstance().RegisterPermActiveStatusCallback( + ASSERT_EQ(ERR_ADD_DEATH_RECIPIENT_FAILED, PermissionRecordManager::GetInstance().RegisterPermActiveStatusCallback( GetSelfTokenID(), permList, callback->AsObject())); AccessTokenID tokenId = AccessTokenKit::GetHapTokenID(g_InfoParms1.userID, g_InfoParms1.bundleName, @@ -602,7 +603,7 @@ HWTEST_F(PermissionRecordManagerTest, StartUsingPermissionTest010, TestSize.Leve std::vector permList = {"ohos.permission.CAMERA"}; sptr callback = new (std::nothrow) PermActiveStatusChangeCallback(); ASSERT_NE(nullptr, callback); - ASSERT_EQ(RET_SUCCESS, PermissionRecordManager::GetInstance().RegisterPermActiveStatusCallback( + ASSERT_EQ(ERR_ADD_DEATH_RECIPIENT_FAILED, PermissionRecordManager::GetInstance().RegisterPermActiveStatusCallback( GetSelfTokenID(), permList, callback->AsObject())); AccessTokenID tokenId = AccessTokenKit::GetHapTokenID(g_InfoParms1.userID, g_InfoParms1.bundleName, @@ -638,7 +639,7 @@ HWTEST_F(PermissionRecordManagerTest, StartUsingPermissionTest011, TestSize.Leve std::vector permList = {"ohos.permission.CAMERA"}; sptr callback = new (std::nothrow) PermActiveStatusChangeCallback(); ASSERT_NE(nullptr, callback); - ASSERT_EQ(RET_SUCCESS, PermissionRecordManager::GetInstance().RegisterPermActiveStatusCallback( + ASSERT_EQ(ERR_ADD_DEATH_RECIPIENT_FAILED, PermissionRecordManager::GetInstance().RegisterPermActiveStatusCallback( GetSelfTokenID(), permList, callback->AsObject())); AccessTokenID tokenId = AccessTokenKit::GetHapTokenID(g_InfoParms1.userID, g_InfoParms1.bundleName, g_InfoParms1.instIndex); -- Gitee