diff --git a/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp b/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp index 1f35651ae13321fa52e089496fc7d9163292ac40..054166843c5152010ff724ed7c43831db1c2d87a 100644 --- a/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp +++ b/interfaces/innerkits/accesstoken/src/accesstoken_manager_client.cpp @@ -918,6 +918,10 @@ int32_t AccessTokenManagerClient::RegisterTokenSyncCallback( } sptr callback = sptr(new (std::nothrow) TokenSyncCallback(syncCallback)); + if (callback == nullptr) { + LOGE(ATM_DOMAIN, ATM_TAG, "Memory allocation for callback failed!"); + return AccessTokenError::ERR_MALLOC_FAILED; + } std::lock_guard lock(tokenSyncCallbackMutex_); int32_t res = proxy->RegisterTokenSyncCallback(callback->AsObject());