diff --git a/interfaces/innerkits/accesstoken/include/access_token_error.h b/interfaces/innerkits/accesstoken/include/access_token_error.h index 2b1c0ed0c1a484d6ac02d2b85f96efdd523fa9d8..9f0fd9a9149709529bced03ea790b5d6e208b1c9 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 dd56f19e5099a04b83928efa7f3d7c64bf4a0ef5..af25d0c187574da55641a9432082756ae3a38b58 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 bdb2c10c17dea03d946258274d181c9244d935b1..57480ea484e6fdf762b62eb9306a55de4f9c1a6e 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 a8000ec41601e62a917d515f3157c05bfd5de86c..648d4563997e37eb3f103c6ed93b52defbd5b6aa 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 ff5f794dbd2d9566cd83311a34d72c39ebcf59c2..5e4cdb5ec39114f1ec51ee859294143de0a3e659 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 9e3b06a6520669d1b1bf834016b93373678d9345..5f0f2fb77216817d1326134f496836c77c30c5b6 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);