From 2cb48e91c6ba0adb374349de173c04e459297b96 Mon Sep 17 00:00:00 2001 From: dingqiaoqiao Date: Mon, 17 Feb 2025 15:05:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9fuzz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: dingqiaoqiao Change-Id: Ie6504f7052378bc05787b0ec170da2b9d04ff58d --- .../service/accesstoken_manager_service.cpp | 3 ++ .../inituserpolicystub_fuzzer.cpp | 38 +++++++++++++++++++ ...selfpermstatechangecallbackstub_fuzzer.cpp | 32 ++++++++++++++++ .../updateuserpolicystub_fuzzer.cpp | 31 +++++++++++++++ 4 files changed, 104 insertions(+) diff --git a/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp b/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp index db205f14f..5f9eb0047 100644 --- a/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp +++ b/services/accesstokenmanager/main/cpp/src/service/accesstoken_manager_service.cpp @@ -347,6 +347,7 @@ int32_t AccessTokenManagerService::UnRegisterPermStateChangeCallback(const sptr< int32_t AccessTokenManagerService::RegisterSelfPermStateChangeCallback( const PermStateChangeScopeParcel& scope, const sptr& callback) { + LOGI(ATM_DOMAIN, ATM_TAG, "111RegisterSelfPermStateChangeCallback"); return PermissionManager::GetInstance().AddPermStateChangeCallback(scope.scope, callback); } @@ -585,11 +586,13 @@ void AccessTokenManagerService::GetPermissionManagerInfo(PermissionGrantInfoParc int32_t AccessTokenManagerService::InitUserPolicy( const std::vector& userList, const std::vector& permList) { + LOGI(ATM_DOMAIN, ATM_TAG, "111InitUserPolicy"); return AccessTokenInfoManager::GetInstance().InitUserPolicy(userList, permList); } int32_t AccessTokenManagerService::UpdateUserPolicy(const std::vector& userList) { + LOGI(ATM_DOMAIN, ATM_TAG, "111UpdateUserPolicy"); return AccessTokenInfoManager::GetInstance().UpdateUserPolicy(userList); } diff --git a/test/fuzztest/services/accesstoken/inituserpolicystub_fuzzer/inituserpolicystub_fuzzer.cpp b/test/fuzztest/services/accesstoken/inituserpolicystub_fuzzer/inituserpolicystub_fuzzer.cpp index e2417e7cc..5766d0e3c 100644 --- a/test/fuzztest/services/accesstoken/inituserpolicystub_fuzzer/inituserpolicystub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/inituserpolicystub_fuzzer/inituserpolicystub_fuzzer.cpp @@ -22,9 +22,14 @@ #include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" #include "i_accesstoken_manager.h" +#include "accesstoken_kit.h" +#include "token_setproc.h" +#include "accesstoken_common_log.h" +#include "accesstoken_info_manager.h" using namespace std; using namespace OHOS::Security::AccessToken; +// const int CONSTANTS_NUMBER_TWO = 2; namespace OHOS { bool InitUserPolicyStubFuzzTest(const uint8_t* data, size_t size) @@ -63,6 +68,8 @@ namespace OHOS { MessageParcel reply; MessageOption option; + + // } DelayedSingleton::GetInstance()->OnRemoteRequest(code, datas, reply, option); return true; @@ -72,6 +79,37 @@ namespace OHOS { /* Fuzzer entry point */ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + HapInfoParams info = { + .userID = 0, + .bundleName = "ohos.InitUserPolicyInner.test", + .instIndex = 0, + .appIDDesc = "appIDDesc", + .apiVersion = 8 + }; + + PermissionStateFull g_testPermReq = { + .permissionName = "ohos.permission.GET_SENSITIVE_PERMISSIONS", + .isGeneral = true, + .resDeviceID = {"test_device"}, + .grantStatus = {PermissionState::PERMISSION_GRANTED}, + .grantFlags = {PermissionFlag::PERMISSION_SYSTEM_FIXED} + }; + + HapPolicyParams policy = { + .apl = APL_SYSTEM_CORE, + .domain = "domain", + .permList = {}, + .permStateList = { g_testPermReq }, + .aclRequestedList = {}, + .preAuthorizationInfo = {} + }; + // bool enable = ((size % CONSTANTS_NUMBER_TWO) == 0); + // if (enable) { + setuid(0); + LOGI(ATM_DOMAIN, ATM_TAG, "hhhhhhhhhhhhhh."); + AccessTokenIDEx tokenIdEx = AccessTokenKit::AllocHapToken(info, policy); + SetSelfTokenID(tokenIdEx.tokenIDEx); + AccessTokenInfoManager::GetInstance().Init(); /* Run your code on data */ OHOS::InitUserPolicyStubFuzzTest(data, size); return 0; diff --git a/test/fuzztest/services/accesstoken/registerselfpermstatechangecallbackstub_fuzzer/registerselfpermstatechangecallbackstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/registerselfpermstatechangecallbackstub_fuzzer/registerselfpermstatechangecallbackstub_fuzzer.cpp index 54d325634..d337c3bb6 100644 --- a/test/fuzztest/services/accesstoken/registerselfpermstatechangecallbackstub_fuzzer/registerselfpermstatechangecallbackstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/registerselfpermstatechangecallbackstub_fuzzer/registerselfpermstatechangecallbackstub_fuzzer.cpp @@ -23,9 +23,12 @@ #include "accesstoken_manager_client.h" #include "accesstoken_manager_service.h" #include "i_accesstoken_manager.h" +#include "accesstoken_kit.h" +#include "token_setproc.h" using namespace std; using namespace OHOS::Security::AccessToken; +const int CONSTANTS_NUMBER_TWO = 2; class CbCustomizeTest2 : public PermStateChangeCallbackCustomize { public: @@ -81,6 +84,35 @@ namespace OHOS { MessageParcel reply; MessageOption option; + + HapInfoParams info = { + .userID = 0, + .bundleName = "ohos", + .instIndex = 0, + .appIDDesc = "appIDDesc", + .apiVersion = 8 + }; + + PermissionStateFull g_testPermReq = { + .permissionName = "ohos.permission.GET_SENSITIVE_PERMISSIONS", + .isGeneral = true, + .resDeviceID = {"test_device"}, + .grantStatus = {PermissionState::PERMISSION_GRANTED}, + .grantFlags = {PermissionFlag::PERMISSION_SYSTEM_FIXED} + }; + HapPolicyParams policy = { + .apl = APL_NORMAL, + .domain = "domain", + .permList = {}, + .permStateList = { g_testPermReq }, + .aclRequestedList = {}, + .preAuthorizationInfo = {} + }; + bool enable = ((size % CONSTANTS_NUMBER_TWO) == 0); + if (enable) { + AccessTokenIDEx tokenIdEx = AccessTokenKit::AllocHapToken(info, policy); + SetSelfTokenID(tokenIdEx.tokenIDEx); + } DelayedSingleton::GetInstance()->OnRemoteRequest(code, datas, reply, option); return true; diff --git a/test/fuzztest/services/accesstoken/updateuserpolicystub_fuzzer/updateuserpolicystub_fuzzer.cpp b/test/fuzztest/services/accesstoken/updateuserpolicystub_fuzzer/updateuserpolicystub_fuzzer.cpp index 1d3bf171c..47dc3a9b1 100644 --- a/test/fuzztest/services/accesstoken/updateuserpolicystub_fuzzer/updateuserpolicystub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/updateuserpolicystub_fuzzer/updateuserpolicystub_fuzzer.cpp @@ -22,9 +22,12 @@ #include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" #include "i_accesstoken_manager.h" +#include "accesstoken_kit.h" +#include "token_setproc.h" using namespace std; using namespace OHOS::Security::AccessToken; +const int CONSTANTS_NUMBER_TWO = 2; namespace OHOS { bool UpdateUserPolicyStubFuzzTest(const uint8_t* data, size_t size) @@ -56,6 +59,34 @@ namespace OHOS { MessageParcel reply; MessageOption option; + HapInfoParams info = { + .userID = 0, + .bundleName = "ohos", + .instIndex = 0, + .appIDDesc = "appIDDesc", + .apiVersion = 8 + }; + + PermissionStateFull g_testPermReq = { + .permissionName = "ohos.permission.GET_SENSITIVE_PERMISSIONS", + .isGeneral = true, + .resDeviceID = {"test_device"}, + .grantStatus = {PermissionState::PERMISSION_GRANTED}, + .grantFlags = {PermissionFlag::PERMISSION_SYSTEM_FIXED} + }; + HapPolicyParams policy = { + .apl = APL_NORMAL, + .domain = "domain", + .permList = {}, + .permStateList = { g_testPermReq }, + .aclRequestedList = {}, + .preAuthorizationInfo = {} + }; + bool enable = ((size % CONSTANTS_NUMBER_TWO) == 0); + if (enable) { + AccessTokenIDEx tokenIdEx = AccessTokenKit::AllocHapToken(info, policy); + SetSelfTokenID(tokenIdEx.tokenIDEx); + } DelayedSingleton::GetInstance()->OnRemoteRequest(code, datas, reply, option); return true; -- Gitee