From 33e48bc2fbe656c18e371e67a4014b1695ede13e Mon Sep 17 00:00:00 2001 From: zhouyan Date: Thu, 26 Jun 2025 14:56:48 +0800 Subject: [PATCH] =?UTF-8?q?fuzz=E7=94=A8=E4=BE=8B=E6=95=B4=E6=94=B9-servic?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhouyan Change-Id: I5c3d5b1c98d3ba750d69cd8e04430a9a5bc25f54 --- .../allochaptoken_fuzzer.cpp | 10 +- .../inithaptoken_fuzzer.cpp | 12 +- .../inituserpolicy_fuzzer.cpp | 7 +- .../setremotehaptokeninfo_fuzzer.cpp | 4 +- .../updatehaptoken_fuzzer.cpp | 9 +- .../allochaptokenservice_fuzzer.cpp | 116 +++++++------- .../gethaptokenidservice_fuzzer.cpp | 16 +- .../gethaptokeninfoservice_fuzzer.cpp | 14 +- .../getnativetokenidservice_fuzzer.cpp | 20 +-- .../getnativetokeninfoservice_fuzzer.cpp | 16 +- .../getpermissionflagservice_fuzzer.cpp | 12 +- .../grantpermissionservice_fuzzer.cpp | 22 +-- .../inithaptokenservice_fuzzer.cpp | 116 +++++++------- .../revokepermissionservice_fuzzer.cpp | 13 +- .../allochaptokenstub_fuzzer.cpp | 102 ++++++++----- .../alloclocaltokenidstub_fuzzer.cpp | 11 +- ...rusergrantedpermissionstatestub_fuzzer.cpp | 7 +- .../deleteremotedevicetokensstub_fuzzer.cpp | 9 +- .../deleteremotehaptokeninfostub_fuzzer.cpp | 9 +- .../deleteremotetokenstub_fuzzer.cpp | 11 +- .../deletetokenstub_fuzzer.cpp | 7 +- .../dumptokeninfostub_fuzzer.cpp | 7 +- .../getaccesstokenid_fuzzer.cpp | 9 +- .../getdefpermissionstub_fuzzer.cpp | 9 +- .../gethaptokenidstub_fuzzer.cpp | 15 +- .../gethaptokeninfofromremotestub_fuzzer.cpp | 10 +- .../gethaptokeninfostub_fuzzer.cpp | 14 +- .../getkernelpermissionsstub_fuzzer.cpp | 7 +- .../getnativetokenidstub_fuzzer.cpp | 10 +- .../getnativetokeninfostub_fuzzer.cpp | 8 +- .../getpermissionflagstub_fuzzer.cpp | 12 +- ...rmissionrequesttogglestatusstub_fuzzer.cpp | 12 +- .../getpermissionsstatusstub_fuzzer.cpp | 143 +++++++----------- .../getpermissionusedtypestub_fuzzer.cpp | 10 +- .../getremotehaptokeninfostub_fuzzer.cpp | 11 +- .../getremotenativetokenidstub_fuzzer.cpp | 11 +- .../getreqpermissionbynamestub_fuzzer.cpp | 9 +- .../getreqpermissionsstub_fuzzer.cpp | 8 +- .../getseccompenhancestub_fuzzer.cpp | 6 +- .../getselfpermissionsstatestub_fuzzer.cpp | 11 +- .../getselfpermissionstatusstub_fuzzer.cpp | 8 +- .../gettokenidbyuseridstub_fuzzer.cpp | 6 +- .../gettokentypestub_fuzzer.cpp | 7 +- ...tpermissionforspecifiedtimestub_fuzzer.cpp | 11 +- .../grantpermissionstub_fuzzer.cpp | 15 +- .../inithaptokenstub_fuzzer.cpp | 103 ++++++++----- .../inituserpolicystub_fuzzer.cpp | 37 ++--- ...sterpermstatechangecallbackstub_fuzzer.cpp | 11 +- .../registerseccompenhancestub_fuzzer.cpp | 15 +- ...selfpermstatechangecallbackstub_fuzzer.cpp | 11 +- .../requestapppermonsettingstub_fuzzer.cpp | 7 +- .../revokepermissionstub_fuzzer.cpp | 13 +- .../setfirstcallertokenid_fuzzer.cpp | 8 +- .../setpermdialogcap_fuzzer.cpp | 18 ++- ...rmissionrequesttogglestatusstub_fuzzer.cpp | 13 +- .../setremotehaptokeninfostub_fuzzer.cpp | 60 ++++---- .../updatehaptokenstub_fuzzer.cpp | 101 ++++++++----- .../updateseccompenhancestub_fuzzer.cpp | 8 +- .../updateuserpolicystub_fuzzer.cpp | 16 +- .../verifyaccesstokenstub_fuzzer.cpp | 11 +- .../verifyaccesstokenwithliststub_fuzzer.cpp | 13 +- ...ddpermissionusedrecordasyncstub_fuzzer.cpp | 15 +- .../addpermissionusedrecordstub_fuzzer.cpp | 14 +- ...tpermissionusedrecordsasyncstub_fuzzer.cpp | 25 ++- .../getpermissionusedrecordsstub_fuzzer.cpp | 25 ++- ...ssionusedrecordtogglestatusstub_fuzzer.cpp | 6 +- .../getpermissionusedtypeinfosstub_fuzzer.cpp | 8 +- .../isallowedusingpermissionstub_fuzzer.cpp | 10 +- ...terpermactivestatuscallbackstub_fuzzer.cpp | 10 +- ...removepermissionusedrecordsstub_fuzzer.cpp | 8 +- .../sethapwithfgreminderstub_fuzzer.cpp | 11 +- .../setmutepolicystub_fuzzer.cpp | 15 +- ...ssionusedrecordtogglestatusstub_fuzzer.cpp | 10 +- ...tartusingpermissioncallbackstub_fuzzer.cpp | 15 +- .../startusingpermissionstub_fuzzer.cpp | 10 +- .../stopusingpermissionstub_fuzzer.cpp | 10 +- ...terpermactivestatuscallbackstub_fuzzer.cpp | 6 +- 77 files changed, 819 insertions(+), 736 deletions(-) diff --git a/test/fuzztest/innerkits/accesstoken/allochaptoken_fuzzer/allochaptoken_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/allochaptoken_fuzzer/allochaptoken_fuzzer.cpp index ee91ab3fb..4987c2be8 100644 --- a/test/fuzztest/innerkits/accesstoken/allochaptoken_fuzzer/allochaptoken_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/allochaptoken_fuzzer/allochaptoken_fuzzer.cpp @@ -15,12 +15,8 @@ #include "allochaptoken_fuzzer.h" -#include #include -#include -#include -#undef private #include "accesstoken_kit.h" #include "fuzzer/FuzzedDataProvider.h" @@ -84,10 +80,10 @@ namespace OHOS { policy.apl = static_cast( provider.ConsumeIntegralInRange(0, static_cast(ATokenAplEnum::APL_ENUM_BUTT))); policy.domain = provider.ConsumeRandomLengthString(); - policy.permList = {def}; - policy.permStateList = {state}; + policy.permList = { def }; + policy.permStateList = { state }; policy.aclRequestedList = {provider.ConsumeRandomLengthString()}; - policy.preAuthorizationInfo = {info}; + policy.preAuthorizationInfo = { info }; policy.checkIgnore = static_cast(provider.ConsumeIntegralInRange( 0, static_cast(HapPolicyCheckIgnore::ACL_IGNORE_CHECK))); policy.aclExtendedMap = {std::make_pair(provider.ConsumeRandomLengthString(), diff --git a/test/fuzztest/innerkits/accesstoken/inithaptoken_fuzzer/inithaptoken_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/inithaptoken_fuzzer/inithaptoken_fuzzer.cpp index e275c6204..076fa9602 100644 --- a/test/fuzztest/innerkits/accesstoken/inithaptoken_fuzzer/inithaptoken_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/inithaptoken_fuzzer/inithaptoken_fuzzer.cpp @@ -15,14 +15,8 @@ #include "inithaptoken_fuzzer.h" -#include -#include -#include -#include #include -#include -#undef private #include "accesstoken_kit.h" #include "fuzzer/FuzzedDataProvider.h" @@ -86,10 +80,10 @@ namespace OHOS { policy.apl = static_cast( provider.ConsumeIntegralInRange(0, static_cast(ATokenAplEnum::APL_ENUM_BUTT))); policy.domain = provider.ConsumeRandomLengthString(); - policy.permList = {def}; - policy.permStateList = {state}; + policy.permList = { def }; + policy.permStateList = { state }; policy.aclRequestedList = {provider.ConsumeRandomLengthString()}; - policy.preAuthorizationInfo = {info}; + policy.preAuthorizationInfo = { info }; policy.checkIgnore = static_cast(provider.ConsumeIntegralInRange( 0, static_cast(HapPolicyCheckIgnore::ACL_IGNORE_CHECK))); policy.aclExtendedMap = {std::make_pair(provider.ConsumeRandomLengthString(), diff --git a/test/fuzztest/innerkits/accesstoken/inituserpolicy_fuzzer/inituserpolicy_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/inituserpolicy_fuzzer/inituserpolicy_fuzzer.cpp index a09d7791f..1f58e2d0b 100644 --- a/test/fuzztest/innerkits/accesstoken/inituserpolicy_fuzzer/inituserpolicy_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/inituserpolicy_fuzzer/inituserpolicy_fuzzer.cpp @@ -15,12 +15,9 @@ #include "inituserpolicy_fuzzer.h" -#include #include -#include #include -#undef private #include "accesstoken_kit.h" #include "access_token.h" #include "fuzzer/FuzzedDataProvider.h" @@ -38,11 +35,11 @@ bool InitUserPolicyFuzzTest(const uint8_t* data, size_t size) FuzzedDataProvider provider(data, size); std::string permissionName = provider.ConsumeRandomLengthString(); - const std::vector permList = {permissionName}; + const std::vector permList = { permissionName }; UserState state; state.userId = provider.ConsumeIntegral(); state.isActive = provider.ConsumeBool(); - std::vector userList = {state}; + std::vector userList = { state }; AccessTokenKit::InitUserPolicy(userList, permList); AccessTokenKit::UpdateUserPolicy(userList); AccessTokenKit::ClearUserPolicy(); diff --git a/test/fuzztest/innerkits/accesstoken/setremotehaptokeninfo_fuzzer/setremotehaptokeninfo_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/setremotehaptokeninfo_fuzzer/setremotehaptokeninfo_fuzzer.cpp index 6cfce3ff9..219c3a082 100644 --- a/test/fuzztest/innerkits/accesstoken/setremotehaptokeninfo_fuzzer/setremotehaptokeninfo_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/setremotehaptokeninfo_fuzzer/setremotehaptokeninfo_fuzzer.cpp @@ -15,11 +15,9 @@ #include "setremotehaptokeninfo_fuzzer.h" -#include #include #include -#undef private #include "accesstoken_kit.h" #include "fuzzer/FuzzedDataProvider.h" @@ -54,7 +52,7 @@ namespace OHOS { .grantFlag = provider.ConsumeIntegralInRange( 0, static_cast(PermissionFlag::PERMISSION_ALLOW_THIS_TIME)) }; - std::vector permStateList = {state}; + std::vector permStateList = { state }; HapTokenInfoForSync remoteTokenInfo = { .baseInfo = baseInfo, diff --git a/test/fuzztest/innerkits/accesstoken/updatehaptoken_fuzzer/updatehaptoken_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/updatehaptoken_fuzzer/updatehaptoken_fuzzer.cpp index 0ecc44bed..3aac30a6f 100644 --- a/test/fuzztest/innerkits/accesstoken/updatehaptoken_fuzzer/updatehaptoken_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/updatehaptoken_fuzzer/updatehaptoken_fuzzer.cpp @@ -16,10 +16,7 @@ #include "updatehaptoken_fuzzer.h" #include -#include -#include -#undef private #include "accesstoken_kit.h" #include "fuzzer/FuzzedDataProvider.h" @@ -67,10 +64,10 @@ namespace OHOS { policy.apl = static_cast( provider.ConsumeIntegralInRange(0, static_cast(ATokenAplEnum::APL_ENUM_BUTT))); policy.domain = provider.ConsumeRandomLengthString(); - policy.permList = {def}; - policy.permStateList = {state}; + policy.permList = { def }; + policy.permStateList = { state }; policy.aclRequestedList = {provider.ConsumeRandomLengthString()}; - policy.preAuthorizationInfo = {info}; + policy.preAuthorizationInfo = { info }; policy.checkIgnore = static_cast(provider.ConsumeIntegralInRange( 0, static_cast(HapPolicyCheckIgnore::ACL_IGNORE_CHECK))); policy.aclExtendedMap = {std::make_pair(provider.ConsumeRandomLengthString(), diff --git a/test/fuzztest/normalize_service/accesstoken/allochaptokenservice_fuzzer/allochaptokenservice_fuzzer.cpp b/test/fuzztest/normalize_service/accesstoken/allochaptokenservice_fuzzer/allochaptokenservice_fuzzer.cpp index c8db10bba..d6f7ff8f4 100644 --- a/test/fuzztest/normalize_service/accesstoken/allochaptokenservice_fuzzer/allochaptokenservice_fuzzer.cpp +++ b/test/fuzztest/normalize_service/accesstoken/allochaptokenservice_fuzzer/allochaptokenservice_fuzzer.cpp @@ -14,15 +14,11 @@ */ #include "allochaptokenservice_fuzzer.h" -#include -#include -#include + #include -#include -#include -#include "accesstoken_fuzzdata.h" -#undef private + #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "hap_info_parcel.h" #include "iaccess_token_manager.h" @@ -30,63 +26,70 @@ using namespace std; using namespace OHOS::Security::AccessToken; const int CONSTANTS_NUMBER_TEN = 10; static const int32_t ROOT_UID = 0; -static const vector STATU_LIST = { - PERMISSION_GRANTED, - PERMISSION_DENIED -}; -static const vector FLAG_LIST = { - static_cast(0), - static_cast(2), - static_cast(4) -}; -static const uint32_t FLAG_LIST_SIZE = 3; -static const uint32_t STATU_LIST_SIZE = 2; - -static const vector APL_LIST = { - APL_NORMAL, - APL_SYSTEM_BASIC, - APL_SYSTEM_CORE, -}; -static const uint32_t APL_LIST_SIZE = 3; namespace OHOS { -void ConstructorParam(AccessTokenFuzzData& fuzzData, HapInfoParcel& hapInfoParcel, HapPolicyParcel& hapPolicyParcel) +void InitHapInfoParams(const std::string& bundleName, FuzzedDataProvider& provider, HapInfoParams& param) { - std::string permissionName = fuzzData.GenerateStochasticString(); - std::string bundleName = fuzzData.GenerateStochasticString(); + param.userID = provider.ConsumeIntegral(); + param.bundleName = bundleName; + param.instIndex = provider.ConsumeIntegral(); + param.dlpType = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(HapDlpType::BUTT_DLP_TYPE))); + param.appIDDesc = provider.ConsumeRandomLengthString(); + param.apiVersion = provider.ConsumeIntegral(); + param.isSystemApp = provider.ConsumeBool(); + param.appDistributionType = provider.ConsumeRandomLengthString(); + param.isRestore = provider.ConsumeBool(); + param.tokenID = provider.ConsumeIntegral(); + param.isAtomicService = provider.ConsumeBool(); +} - uint32_t flagIndex = fuzzData.GetData() % FLAG_LIST_SIZE; - uint32_t statusIndex = 1; - if (flagIndex != 0) { - statusIndex = fuzzData.GetData() % STATU_LIST_SIZE; - } - PermissionStatus testState = { +void InitHapPolicy(const std::string& permissionName, const std::string& bundleName, FuzzedDataProvider& provider, + HapPolicy& policy) +{ + PermissionDef def = { .permissionName = permissionName, - .grantStatus = STATU_LIST[statusIndex], - .grantFlag = FLAG_LIST[flagIndex], - }; - HapInfoParams testInfoParms = { - .userID = fuzzData.GetData(), .bundleName = bundleName, - .instIndex = 0, - .appIDDesc = fuzzData.GenerateStochasticString() + .grantMode = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(GrantMode::SYSTEM_GRANT))), + .availableLevel = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(ATokenAplEnum::APL_ENUM_BUTT))), + .provisionEnable = provider.ConsumeBool(), + .distributedSceneEnable = provider.ConsumeBool(), + .label = provider.ConsumeRandomLengthString(), + .labelId = provider.ConsumeIntegral(), + .description = provider.ConsumeRandomLengthString(), + .descriptionId = provider.ConsumeIntegral(), + .availableType = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(ATokenAvailableTypeEnum::AVAILABLE_TYPE_BUTT))), + .isKernelEffect = provider.ConsumeBool(), + .hasValue = provider.ConsumeBool(), }; - PreAuthorizationInfo info1 = { + + PermissionStatus state = { .permissionName = permissionName, - .userCancelable = fuzzData.GenerateStochasticBool() + .grantStatus = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionState::PERMISSION_GRANTED))), + .grantFlag = provider.ConsumeIntegralInRange( + 0, static_cast(PermissionFlag::PERMISSION_ALLOW_THIS_TIME)), }; - uint32_t aplIndex = fuzzData.GetData() % APL_LIST_SIZE; - HapPolicy testPolicy = { - .apl = APL_LIST[aplIndex], - .domain = fuzzData.GenerateStochasticString(), - .permStateList = {testState}, - .aclRequestedList = {permissionName}, - .preAuthorizationInfo = {info1} + PreAuthorizationInfo info = { + .permissionName = permissionName, + .userCancelable = provider.ConsumeBool(), }; - hapInfoParcel.hapInfoParameter = testInfoParms; - hapPolicyParcel.hapPolicy = testPolicy; + policy.apl = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(ATokenAplEnum::APL_ENUM_BUTT))); + policy.domain = provider.ConsumeRandomLengthString(); + policy.permList = { def }; + policy.permStateList = { state }; + policy.aclRequestedList = {provider.ConsumeRandomLengthString()}; + policy.preAuthorizationInfo = { info }; + policy.checkIgnore = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(HapPolicyCheckIgnore::ACL_IGNORE_CHECK))); + policy.aclExtendedMap = {std::make_pair(provider.ConsumeRandomLengthString(), + provider.ConsumeRandomLengthString())}; } bool AllocHapTokenServiceFuzzTest(const uint8_t* data, size_t size) @@ -95,10 +98,15 @@ bool AllocHapTokenServiceFuzzTest(const uint8_t* data, size_t size) return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); + std::string permissionName = provider.ConsumeRandomLengthString(); + std::string bundleName = provider.ConsumeRandomLengthString(); + HapInfoParcel hapInfoParcel; + InitHapInfoParams(bundleName, provider, hapInfoParcel.hapInfoParameter); + HapPolicyParcel hapPolicyParcel; - ConstructorParam(fuzzData, hapInfoParcel, hapPolicyParcel); + InitHapPolicy(permissionName, bundleName, provider, hapPolicyParcel.hapPolicy); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); diff --git a/test/fuzztest/normalize_service/accesstoken/gethaptokenidservice_fuzzer/gethaptokenidservice_fuzzer.cpp b/test/fuzztest/normalize_service/accesstoken/gethaptokenidservice_fuzzer/gethaptokenidservice_fuzzer.cpp index cf4ae391d..6e039068b 100644 --- a/test/fuzztest/normalize_service/accesstoken/gethaptokenidservice_fuzzer/gethaptokenidservice_fuzzer.cpp +++ b/test/fuzztest/normalize_service/accesstoken/gethaptokenidservice_fuzzer/gethaptokenidservice_fuzzer.cpp @@ -15,14 +15,10 @@ #include "gethaptokenidservice_fuzzer.h" -#include -#include #include -#include -#include -#include "accesstoken_fuzzdata.h" -#undef private + #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -37,10 +33,10 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - int userID = fuzzData.GetData(); - int instIndex = static_cast(size); - std::string bundleName(fuzzData.GenerateStochasticString()); + FuzzedDataProvider provider(data, size); + int32_t userID = provider.ConsumeIntegral(); + std::string bundleName = provider.ConsumeRandomLengthString(); + int32_t instIndex = provider.ConsumeIntegral(); MessageParcel sendData; sendData.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); diff --git a/test/fuzztest/normalize_service/accesstoken/gethaptokeninfoservice_fuzzer/gethaptokeninfoservice_fuzzer.cpp b/test/fuzztest/normalize_service/accesstoken/gethaptokeninfoservice_fuzzer/gethaptokeninfoservice_fuzzer.cpp index 10c79e3a8..c1083eab9 100644 --- a/test/fuzztest/normalize_service/accesstoken/gethaptokeninfoservice_fuzzer/gethaptokeninfoservice_fuzzer.cpp +++ b/test/fuzztest/normalize_service/accesstoken/gethaptokeninfoservice_fuzzer/gethaptokeninfoservice_fuzzer.cpp @@ -15,14 +15,8 @@ #include "gethaptokeninfoservice_fuzzer.h" -#include -#include -#include -#include -#include -#undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "permission_def_parcel.h" @@ -38,9 +32,9 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - + + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); if (!datas.WriteUint32(tokenId)) { diff --git a/test/fuzztest/normalize_service/accesstoken/getnativetokenidservice_fuzzer/getnativetokenidservice_fuzzer.cpp b/test/fuzztest/normalize_service/accesstoken/getnativetokenidservice_fuzzer/getnativetokenidservice_fuzzer.cpp index c171f5b5b..049f197f8 100644 --- a/test/fuzztest/normalize_service/accesstoken/getnativetokenidservice_fuzzer/getnativetokenidservice_fuzzer.cpp +++ b/test/fuzztest/normalize_service/accesstoken/getnativetokenidservice_fuzzer/getnativetokenidservice_fuzzer.cpp @@ -20,9 +20,10 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "permission_def_parcel.h" @@ -31,7 +32,7 @@ using namespace OHOS; using namespace OHOS::Security::AccessToken; const int CONSTANTS_NUMBER_TEN = 10; static const int32_t ROOT_UID = 0; -static bool REAL_DATA_FLAG = true; +static bool g_realDataFlag = true; namespace OHOS { bool GetNativeTokenIdServiceFuzzTest(const uint8_t* data, size_t size) @@ -39,15 +40,16 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::string testName(fuzzData.GenerateStochasticString()); - if (REAL_DATA_FLAG) { - testName = "accesstoken_service"; + + FuzzedDataProvider provider(data, size); + std::string permissionName = provider.ConsumeRandomLengthString(); + if (g_realDataFlag) { + permissionName = "accesstoken_service"; } MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!datas.WriteString(testName)) { + if (!datas.WriteString(permissionName)) { return false; } @@ -60,9 +62,9 @@ namespace OHOS { if (enable) { setuid(CONSTANTS_NUMBER_TEN); } - if (REAL_DATA_FLAG) { + if (g_realDataFlag) { setuid(ROOT_UID); - REAL_DATA_FLAG = false; + g_realDataFlag = false; } DelayedSingleton::GetInstance()->OnRemoteRequest(code, datas, reply, option); setuid(ROOT_UID); diff --git a/test/fuzztest/normalize_service/accesstoken/getnativetokeninfoservice_fuzzer/getnativetokeninfoservice_fuzzer.cpp b/test/fuzztest/normalize_service/accesstoken/getnativetokeninfoservice_fuzzer/getnativetokeninfoservice_fuzzer.cpp index fe3b247bf..235ac7e3a 100644 --- a/test/fuzztest/normalize_service/accesstoken/getnativetokeninfoservice_fuzzer/getnativetokeninfoservice_fuzzer.cpp +++ b/test/fuzztest/normalize_service/accesstoken/getnativetokeninfoservice_fuzzer/getnativetokeninfoservice_fuzzer.cpp @@ -20,17 +20,18 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_kit.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; using namespace OHOS::Security::AccessToken; const int CONSTANTS_NUMBER_TEN = 10; static const int32_t ROOT_UID = 0; -static bool REAL_DATA_FLAG = true; +static bool g_realDataFlag = true; namespace OHOS { bool GetNativeTokenInfoServiceFuzzTest(const uint8_t* data, size_t size) @@ -38,9 +39,10 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - if (REAL_DATA_FLAG) { + + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + if (g_realDataFlag) { tokenId = AccessTokenKit::GetNativeTokenId("accesstoken_service"); } MessageParcel inData; @@ -58,9 +60,9 @@ namespace OHOS { if (enable) { setuid(CONSTANTS_NUMBER_TEN); } - if (REAL_DATA_FLAG) { + if (g_realDataFlag) { setuid(ROOT_UID); - REAL_DATA_FLAG = false; + g_realDataFlag = false; } DelayedSingleton::GetInstance()->OnRemoteRequest(code, inData, reply, option); setuid(ROOT_UID); diff --git a/test/fuzztest/normalize_service/accesstoken/getpermissionflagservice_fuzzer/getpermissionflagservice_fuzzer.cpp b/test/fuzztest/normalize_service/accesstoken/getpermissionflagservice_fuzzer/getpermissionflagservice_fuzzer.cpp index cfe7bdcf4..f0176436b 100644 --- a/test/fuzztest/normalize_service/accesstoken/getpermissionflagservice_fuzzer/getpermissionflagservice_fuzzer.cpp +++ b/test/fuzztest/normalize_service/accesstoken/getpermissionflagservice_fuzzer/getpermissionflagservice_fuzzer.cpp @@ -20,9 +20,10 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -36,12 +37,13 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - std::string testName(fuzzData.GenerateStochasticString()); + + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + std::string permissionName = provider.ConsumeRandomLengthString(); MessageParcel sendData; sendData.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!sendData.WriteUint32(tokenId) || !sendData.WriteString(testName)) { + if (!sendData.WriteUint32(tokenId) || !sendData.WriteString(permissionName)) { return false; } diff --git a/test/fuzztest/normalize_service/accesstoken/grantpermissionservice_fuzzer/grantpermissionservice_fuzzer.cpp b/test/fuzztest/normalize_service/accesstoken/grantpermissionservice_fuzzer/grantpermissionservice_fuzzer.cpp index 42d0d9a3d..c618c0c8d 100644 --- a/test/fuzztest/normalize_service/accesstoken/grantpermissionservice_fuzzer/grantpermissionservice_fuzzer.cpp +++ b/test/fuzztest/normalize_service/accesstoken/grantpermissionservice_fuzzer/grantpermissionservice_fuzzer.cpp @@ -20,12 +20,13 @@ #include #include #include + #undef private #include "access_token.h" -#include "accesstoken_fuzzdata.h" #include "accesstoken_info_manager.h" #include "accesstoken_kit.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "token_setproc.h" @@ -65,15 +66,16 @@ bool GrantPermissionServiceFuzzTest(const uint8_t* data, size_t size) if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - std::string testName(fuzzData.GenerateStochasticString()); + + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + std::string permissionName = provider.ConsumeRandomLengthString(); + uint32_t flagIndex = provider.ConsumeIntegral() % FLAG_LIST_SIZE; + PermissionFlag flag = FLAG_LIST[flagIndex]; + MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - - uint32_t flagIndex = fuzzData.GetData() % FLAG_LIST_SIZE; - PermissionFlag flag = FLAG_LIST[flagIndex]; - if (!datas.WriteUint32(tokenId) || !datas.WriteString(testName) || + if (!datas.WriteUint32(tokenId) || !datas.WriteString(permissionName) || !datas.WriteInt32(flag)) { return false; } @@ -84,7 +86,7 @@ bool GrantPermissionServiceFuzzTest(const uint8_t* data, size_t size) MessageParcel reply; MessageOption option; AccessTokenID tokenIdHap; - bool enable2 = ((fuzzData.GetData() % CONSTANTS_NUMBER_TEN) > 0); + bool enable2 = ((provider.ConsumeIntegral() % CONSTANTS_NUMBER_TEN) > 0); if (enable2) { AccessTokenIDEx tokenIdEx = AccessTokenKit::AllocHapToken(g_InfoParms, g_PolicyPrams); tokenIdHap = tokenIdEx.tokenIDEx; @@ -96,7 +98,7 @@ bool GrantPermissionServiceFuzzTest(const uint8_t* data, size_t size) std::map tokenIdAplMap; AccessTokenInfoManager::GetInstance().Init(hapSize, nativeSize, pefDefSize, dlpSize, tokenIdAplMap); } - bool enable = ((fuzzData.GetData() % CONSTANTS_NUMBER_FIVE) == 0); + bool enable = ((provider.ConsumeIntegral() % CONSTANTS_NUMBER_FIVE) == 0); if (enable) { setuid(CONSTANTS_NUMBER_FIVE); } diff --git a/test/fuzztest/normalize_service/accesstoken/inithaptokenservice_fuzzer/inithaptokenservice_fuzzer.cpp b/test/fuzztest/normalize_service/accesstoken/inithaptokenservice_fuzzer/inithaptokenservice_fuzzer.cpp index eb3dd7259..2b2267bb4 100644 --- a/test/fuzztest/normalize_service/accesstoken/inithaptokenservice_fuzzer/inithaptokenservice_fuzzer.cpp +++ b/test/fuzztest/normalize_service/accesstoken/inithaptokenservice_fuzzer/inithaptokenservice_fuzzer.cpp @@ -14,15 +14,11 @@ */ #include "inithaptokenservice_fuzzer.h" -#include -#include -#include + #include -#include -#include -#include "accesstoken_fuzzdata.h" -#undef private + #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "hap_info_parcel.h" #include "iaccess_token_manager.h" @@ -30,63 +26,70 @@ using namespace std; using namespace OHOS::Security::AccessToken; const int CONSTANTS_NUMBER_TEN = 10; static const int32_t ROOT_UID = 0; -static const vector STATU_LIST = { - PERMISSION_GRANTED, - PERMISSION_DENIED -}; -static const vector FLAG_LIST = { - static_cast(0), - static_cast(2), - static_cast(4) -}; -static const uint32_t FLAG_LIST_SIZE = 3; -static const uint32_t STATU_LIST_SIZE = 2; - -static const vector APL_LIST = { - APL_NORMAL, - APL_SYSTEM_BASIC, - APL_SYSTEM_CORE, -}; -static const uint32_t APL_LIST_SIZE = 3; namespace OHOS { -void ConstructorParam(AccessTokenFuzzData& fuzzData, HapInfoParcel& hapInfoParcel, HapPolicyParcel& hapPolicyParcel) +void InitHapInfoParams(const std::string& bundleName, FuzzedDataProvider& provider, HapInfoParams& param) { - std::string permissionName = fuzzData.GenerateStochasticString(); - std::string bundleName = fuzzData.GenerateStochasticString(); + param.userID = provider.ConsumeIntegral(); + param.bundleName = bundleName; + param.instIndex = provider.ConsumeIntegral(); + param.dlpType = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(HapDlpType::BUTT_DLP_TYPE))); + param.appIDDesc = provider.ConsumeRandomLengthString(); + param.apiVersion = provider.ConsumeIntegral(); + param.isSystemApp = provider.ConsumeBool(); + param.appDistributionType = provider.ConsumeRandomLengthString(); + param.isRestore = provider.ConsumeBool(); + param.tokenID = provider.ConsumeIntegral(); + param.isAtomicService = provider.ConsumeBool(); +} - uint32_t flagIndex = fuzzData.GetData() % FLAG_LIST_SIZE; - uint32_t statusIndex = 1; - if (flagIndex != 0) { - statusIndex = fuzzData.GetData() % STATU_LIST_SIZE; - } - PermissionStatus testState = { +void InitHapPolicy(const std::string& permissionName, const std::string& bundleName, FuzzedDataProvider& provider, + HapPolicy& policy) +{ + PermissionDef def = { .permissionName = permissionName, - .grantStatus = STATU_LIST[statusIndex], - .grantFlag = FLAG_LIST[flagIndex], - }; - HapInfoParams testInfoParms = { - .userID = fuzzData.GetData(), .bundleName = bundleName, - .instIndex = 0, - .appIDDesc = fuzzData.GenerateStochasticString() + .grantMode = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(GrantMode::SYSTEM_GRANT))), + .availableLevel = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(ATokenAplEnum::APL_ENUM_BUTT))), + .provisionEnable = provider.ConsumeBool(), + .distributedSceneEnable = provider.ConsumeBool(), + .label = provider.ConsumeRandomLengthString(), + .labelId = provider.ConsumeIntegral(), + .description = provider.ConsumeRandomLengthString(), + .descriptionId = provider.ConsumeIntegral(), + .availableType = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(ATokenAvailableTypeEnum::AVAILABLE_TYPE_BUTT))), + .isKernelEffect = provider.ConsumeBool(), + .hasValue = provider.ConsumeBool(), }; - PreAuthorizationInfo info1 = { + + PermissionStatus state = { .permissionName = permissionName, - .userCancelable = fuzzData.GenerateStochasticBool() + .grantStatus = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionState::PERMISSION_GRANTED))), + .grantFlag = provider.ConsumeIntegralInRange( + 0, static_cast(PermissionFlag::PERMISSION_ALLOW_THIS_TIME)), }; - uint32_t aplIndex = fuzzData.GetData() % APL_LIST_SIZE; - HapPolicy testPolicy = { - .apl = APL_LIST[aplIndex], - .domain = fuzzData.GenerateStochasticString(), - .permStateList = {testState}, - .aclRequestedList = {permissionName}, - .preAuthorizationInfo = {info1} + PreAuthorizationInfo info = { + .permissionName = permissionName, + .userCancelable = provider.ConsumeBool(), }; - hapInfoParcel.hapInfoParameter = testInfoParms; - hapPolicyParcel.hapPolicy = testPolicy; + policy.apl = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(ATokenAplEnum::APL_ENUM_BUTT))); + policy.domain = provider.ConsumeRandomLengthString(); + policy.permList = { def }; + policy.permStateList = { state }; + policy.aclRequestedList = {provider.ConsumeRandomLengthString()}; + policy.preAuthorizationInfo = { info }; + policy.checkIgnore = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(HapPolicyCheckIgnore::ACL_IGNORE_CHECK))); + policy.aclExtendedMap = {std::make_pair(provider.ConsumeRandomLengthString(), + provider.ConsumeRandomLengthString())}; } bool InitHapTokenServiceFuzzTest(const uint8_t* data, size_t size) @@ -95,10 +98,15 @@ bool InitHapTokenServiceFuzzTest(const uint8_t* data, size_t size) return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); + std::string permissionName = provider.ConsumeRandomLengthString(); + std::string bundleName = provider.ConsumeRandomLengthString(); + HapInfoParcel hapInfoParcel; + InitHapInfoParams(bundleName, provider, hapInfoParcel.hapInfoParameter); + HapPolicyParcel hapPolicyParcel; - ConstructorParam(fuzzData, hapInfoParcel, hapPolicyParcel); + InitHapPolicy(permissionName, bundleName, provider, hapPolicyParcel.hapPolicy); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); diff --git a/test/fuzztest/normalize_service/accesstoken/revokepermissionservice_fuzzer/revokepermissionservice_fuzzer.cpp b/test/fuzztest/normalize_service/accesstoken/revokepermissionservice_fuzzer/revokepermissionservice_fuzzer.cpp index 775e08ab6..22102a383 100644 --- a/test/fuzztest/normalize_service/accesstoken/revokepermissionservice_fuzzer/revokepermissionservice_fuzzer.cpp +++ b/test/fuzztest/normalize_service/accesstoken/revokepermissionservice_fuzzer/revokepermissionservice_fuzzer.cpp @@ -20,9 +20,10 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -48,15 +49,15 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - std::string testName(fuzzData.GenerateStochasticString()); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + std::string permissionName = provider.ConsumeRandomLengthString(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - uint32_t flagIndex = fuzzData.GetData() % FLAG_LIST_SIZE; + uint32_t flagIndex = provider.ConsumeIntegral() % FLAG_LIST_SIZE; PermissionFlag flag = FLAG_LIST[flagIndex]; - if (!datas.WriteUint32(tokenId) || !datas.WriteString(testName) || + if (!datas.WriteUint32(tokenId) || !datas.WriteString(permissionName) || !datas.WriteInt32(flag)) { return false; } diff --git a/test/fuzztest/services/accesstoken/allochaptokenstub_fuzzer/allochaptokenstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/allochaptokenstub_fuzzer/allochaptokenstub_fuzzer.cpp index 0125f79fb..7fa2f6742 100644 --- a/test/fuzztest/services/accesstoken/allochaptokenstub_fuzzer/allochaptokenstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/allochaptokenstub_fuzzer/allochaptokenstub_fuzzer.cpp @@ -14,15 +14,12 @@ */ #include "allochaptokenstub_fuzzer.h" -#include -#include -#include + #include -#include -#include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "hap_info_parcel.h" #include "iaccess_token_manager.h" @@ -32,44 +29,68 @@ const int CONSTANTS_NUMBER_TWO = 2; static const int32_t ROOT_UID = 0; namespace OHOS { - void ConstructorParam(AccessTokenFuzzData& fuzzData, HapInfoParcel& hapInfoParcel, HapPolicyParcel& hapPolicyParcel) + void InitHapInfoParams(const std::string& bundleName, FuzzedDataProvider& provider, HapInfoParams& param) + { + param.userID = provider.ConsumeIntegral(); + param.bundleName = bundleName; + param.instIndex = provider.ConsumeIntegral(); + param.dlpType = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(HapDlpType::BUTT_DLP_TYPE))); + param.appIDDesc = provider.ConsumeRandomLengthString(); + param.apiVersion = provider.ConsumeIntegral(); + param.isSystemApp = provider.ConsumeBool(); + param.appDistributionType = provider.ConsumeRandomLengthString(); + param.isRestore = provider.ConsumeBool(); + param.tokenID = provider.ConsumeIntegral(); + param.isAtomicService = provider.ConsumeBool(); + } + + void InitHapPolicy(const std::string& permissionName, const std::string& bundleName, FuzzedDataProvider& provider, + HapPolicy& policy) { - std::string permissionName = fuzzData.GenerateStochasticString(); - std::string bundleName = fuzzData.GenerateStochasticString(); - PermissionDef testPermDef = { + PermissionDef def = { .permissionName = permissionName, .bundleName = bundleName, - .grantMode = 1, - .availableLevel = APL_NORMAL, - .label = fuzzData.GenerateStochasticString(), - .labelId = 1, - .description = fuzzData.GenerateStochasticString(), - .descriptionId = 1}; - PermissionStatus testState = { - .permissionName = permissionName, - .grantStatus = PermissionState::PERMISSION_GRANTED, - .grantFlag = 1, + .grantMode = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(GrantMode::SYSTEM_GRANT))), + .availableLevel = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(ATokenAplEnum::APL_ENUM_BUTT))), + .provisionEnable = provider.ConsumeBool(), + .distributedSceneEnable = provider.ConsumeBool(), + .label = provider.ConsumeRandomLengthString(), + .labelId = provider.ConsumeIntegral(), + .description = provider.ConsumeRandomLengthString(), + .descriptionId = provider.ConsumeIntegral(), + .availableType = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(ATokenAvailableTypeEnum::AVAILABLE_TYPE_BUTT))), + .isKernelEffect = provider.ConsumeBool(), + .hasValue = provider.ConsumeBool(), }; - HapInfoParams testInfoParms = { - .userID = 1, - .bundleName = bundleName, - .instIndex = 0, - .appIDDesc = fuzzData.GenerateStochasticString()}; - PreAuthorizationInfo info1 = { + + PermissionStatus state = { .permissionName = permissionName, - .userCancelable = true + .grantStatus = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionState::PERMISSION_GRANTED))), + .grantFlag = provider.ConsumeIntegralInRange( + 0, static_cast(PermissionFlag::PERMISSION_ALLOW_THIS_TIME)), }; - HapPolicy testPolicy = { - .apl = APL_NORMAL, - .domain = fuzzData.GenerateStochasticString(), - .permList = {testPermDef}, - .permStateList = {testState}, - .aclRequestedList = {permissionName}, - .preAuthorizationInfo = {info1} + + PreAuthorizationInfo info = { + .permissionName = permissionName, + .userCancelable = provider.ConsumeBool(), }; - hapInfoParcel.hapInfoParameter = testInfoParms; - hapPolicyParcel.hapPolicy = testPolicy; + policy.apl = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(ATokenAplEnum::APL_ENUM_BUTT))); + policy.domain = provider.ConsumeRandomLengthString(); + policy.permList = { def }; + policy.permStateList = { state }; + policy.aclRequestedList = {provider.ConsumeRandomLengthString()}; + policy.preAuthorizationInfo = { info }; + policy.checkIgnore = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(HapPolicyCheckIgnore::ACL_IGNORE_CHECK))); + policy.aclExtendedMap = {std::make_pair(provider.ConsumeRandomLengthString(), + provider.ConsumeRandomLengthString())}; } bool AllocHapTokenStubFuzzTest(const uint8_t* data, size_t size) @@ -78,10 +99,15 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); + std::string permissionName = provider.ConsumeRandomLengthString(); + std::string bundleName = provider.ConsumeRandomLengthString(); + HapInfoParcel hapInfoParcel; + InitHapInfoParams(bundleName, provider, hapInfoParcel.hapInfoParameter); + HapPolicyParcel hapPolicyParcel; - ConstructorParam(fuzzData, hapInfoParcel, hapPolicyParcel); + InitHapPolicy(permissionName, bundleName, provider, hapPolicyParcel.hapPolicy); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); diff --git a/test/fuzztest/services/accesstoken/alloclocaltokenidstub_fuzzer/alloclocaltokenidstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/alloclocaltokenidstub_fuzzer/alloclocaltokenidstub_fuzzer.cpp index 79e4f2c43..8039d7232 100644 --- a/test/fuzztest/services/accesstoken/alloclocaltokenidstub_fuzzer/alloclocaltokenidstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/alloclocaltokenidstub_fuzzer/alloclocaltokenidstub_fuzzer.cpp @@ -20,9 +20,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -37,13 +38,13 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - std::string testName(fuzzData.GenerateStochasticString()); + FuzzedDataProvider provider(data, size); + std::string remoteDeviceID = provider.ConsumeRandomLengthString(); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel inData; inData.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!inData.WriteUint32(tokenId) || !inData.WriteString(testName)) { + if (!inData.WriteString(remoteDeviceID) || !inData.WriteUint32(tokenId)) { return false; } diff --git a/test/fuzztest/services/accesstoken/clearusergrantedpermissionstatestub_fuzzer/clearusergrantedpermissionstatestub_fuzzer.cpp b/test/fuzztest/services/accesstoken/clearusergrantedpermissionstatestub_fuzzer/clearusergrantedpermissionstatestub_fuzzer.cpp index 6d0865fe8..32492574a 100644 --- a/test/fuzztest/services/accesstoken/clearusergrantedpermissionstatestub_fuzzer/clearusergrantedpermissionstatestub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/clearusergrantedpermissionstatestub_fuzzer/clearusergrantedpermissionstatestub_fuzzer.cpp @@ -20,9 +20,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -37,8 +38,8 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel sendData; sendData.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); if (!sendData.WriteUint32(tokenId)) { diff --git a/test/fuzztest/services/accesstoken/deleteremotedevicetokensstub_fuzzer/deleteremotedevicetokensstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/deleteremotedevicetokensstub_fuzzer/deleteremotedevicetokensstub_fuzzer.cpp index f224bf4c5..b7adfc1a9 100644 --- a/test/fuzztest/services/accesstoken/deleteremotedevicetokensstub_fuzzer/deleteremotedevicetokensstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/deleteremotedevicetokensstub_fuzzer/deleteremotedevicetokensstub_fuzzer.cpp @@ -18,11 +18,12 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_info_manager.h" #include "accesstoken_kit.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "token_setproc.h" @@ -40,12 +41,12 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::string testName(fuzzData.GenerateStochasticString()); + FuzzedDataProvider provider(data, size); + std::string deviceID = provider.ConsumeRandomLengthString(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!datas.WriteString(testName)) { + if (!datas.WriteString(deviceID)) { return false; } diff --git a/test/fuzztest/services/accesstoken/deleteremotehaptokeninfostub_fuzzer/deleteremotehaptokeninfostub_fuzzer.cpp b/test/fuzztest/services/accesstoken/deleteremotehaptokeninfostub_fuzzer/deleteremotehaptokeninfostub_fuzzer.cpp index 507aed4f8..59b671366 100644 --- a/test/fuzztest/services/accesstoken/deleteremotehaptokeninfostub_fuzzer/deleteremotehaptokeninfostub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/deleteremotehaptokeninfostub_fuzzer/deleteremotehaptokeninfostub_fuzzer.cpp @@ -18,8 +18,9 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private +#include "fuzzer/FuzzedDataProvider.h" #include "i_token_sync_manager.h" #include "token_sync_manager_service.h" @@ -33,13 +34,13 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID TOKENID = fuzzData.GetData(); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenID = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(ITokenSyncManager::GetDescriptor()); - if (!datas.WriteUint32(TOKENID)) { + if (!datas.WriteUint32(tokenID)) { return false; } diff --git a/test/fuzztest/services/accesstoken/deleteremotetokenstub_fuzzer/deleteremotetokenstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/deleteremotetokenstub_fuzzer/deleteremotetokenstub_fuzzer.cpp index 99f54ca3d..ebb06b76b 100644 --- a/test/fuzztest/services/accesstoken/deleteremotetokenstub_fuzzer/deleteremotetokenstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/deleteremotetokenstub_fuzzer/deleteremotetokenstub_fuzzer.cpp @@ -18,11 +18,12 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_info_manager.h" #include "accesstoken_kit.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "token_setproc.h" @@ -40,13 +41,13 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::string testName(fuzzData.GenerateStochasticString()); - AccessTokenID tokenId = fuzzData.GetData(); + FuzzedDataProvider provider(data, size); + std::string deviceID = provider.ConsumeRandomLengthString(); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!datas.WriteString(testName)) { + if (!datas.WriteString(deviceID)) { return false; } if (!datas.WriteUint32(tokenId)) { diff --git a/test/fuzztest/services/accesstoken/deletetokenstub_fuzzer/deletetokenstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/deletetokenstub_fuzzer/deletetokenstub_fuzzer.cpp index 80d797a4f..faea9dcf8 100644 --- a/test/fuzztest/services/accesstoken/deletetokenstub_fuzzer/deletetokenstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/deletetokenstub_fuzzer/deletetokenstub_fuzzer.cpp @@ -20,9 +20,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -37,8 +38,8 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); diff --git a/test/fuzztest/services/accesstoken/dumptokeninfostub_fuzzer/dumptokeninfostub_fuzzer.cpp b/test/fuzztest/services/accesstoken/dumptokeninfostub_fuzzer/dumptokeninfostub_fuzzer.cpp index 03ff2eaa4..e29b4ac34 100644 --- a/test/fuzztest/services/accesstoken/dumptokeninfostub_fuzzer/dumptokeninfostub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/dumptokeninfostub_fuzzer/dumptokeninfostub_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -33,8 +34,8 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); diff --git a/test/fuzztest/services/accesstoken/getaccesstokenid_fuzzer/getaccesstokenid_fuzzer.cpp b/test/fuzztest/services/accesstoken/getaccesstokenid_fuzzer/getaccesstokenid_fuzzer.cpp index 5380cc4c5..386e43706 100644 --- a/test/fuzztest/services/accesstoken/getaccesstokenid_fuzzer/getaccesstokenid_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getaccesstokenid_fuzzer/getaccesstokenid_fuzzer.cpp @@ -20,12 +20,12 @@ #include #include #undef private -#include "accesstoken_fuzzdata.h" + +#include "fuzzer/FuzzedDataProvider.h" #include "nativetoken.h" #include "nativetoken_kit.h" using namespace std; -using namespace OHOS::Security::AccessToken; namespace OHOS { bool GetAccessTokenIdFuzzTest(const uint8_t* data, size_t size) @@ -33,7 +33,8 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); + + FuzzedDataProvider provider(data, size); NativeTokenInfoParams infoInstance = { .permsNum = 0, .aclsNum = 0, @@ -42,7 +43,7 @@ namespace OHOS { .aplStr = "system_core", }; infoInstance.dcapsNum = 0; - std::string processName(fuzzData.GenerateStochasticString()); + std::string processName = provider.ConsumeRandomLengthString(); char name[MAX_PROCESS_NAME_LEN] = { 0 }; if (strcpy_s(name, MAX_PROCESS_NAME_LEN, processName.c_str()) != EOK) { return false; diff --git a/test/fuzztest/services/accesstoken/getdefpermissionstub_fuzzer/getdefpermissionstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getdefpermissionstub_fuzzer/getdefpermissionstub_fuzzer.cpp index 5be9fb45e..80a4152eb 100644 --- a/test/fuzztest/services/accesstoken/getdefpermissionstub_fuzzer/getdefpermissionstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getdefpermissionstub_fuzzer/getdefpermissionstub_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "permission_def_parcel.h" @@ -35,12 +36,12 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::string testName(fuzzData.GenerateStochasticString()); + FuzzedDataProvider provider(data, size); + std::string permissionName = provider.ConsumeRandomLengthString(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!datas.WriteString(testName)) { + if (!datas.WriteString(permissionName)) { return false; } diff --git a/test/fuzztest/services/accesstoken/gethaptokenidstub_fuzzer/gethaptokenidstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/gethaptokenidstub_fuzzer/gethaptokenidstub_fuzzer.cpp index 39c8c5fff..137dcbcf9 100644 --- a/test/fuzztest/services/accesstoken/gethaptokenidstub_fuzzer/gethaptokenidstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/gethaptokenidstub_fuzzer/gethaptokenidstub_fuzzer.cpp @@ -20,9 +20,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -37,16 +38,14 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - int userID = fuzzData.GetData(); - std::string bundleName(fuzzData.GenerateStochasticString()); - int instIndex = static_cast(size); + FuzzedDataProvider provider(data, size); + int userID = provider.ConsumeIntegral(); + std::string bundleName = provider.ConsumeRandomLengthString(); + int instIndex = provider.ConsumeIntegral(); MessageParcel sendData; sendData.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!sendData.WriteUint32(tokenId) || !sendData.WriteInt32(userID) || - !sendData.WriteString(bundleName) || !sendData.WriteInt32(instIndex)) { + if (!sendData.WriteInt32(userID) || !sendData.WriteString(bundleName) || !sendData.WriteInt32(instIndex)) { return false; } diff --git a/test/fuzztest/services/accesstoken/gethaptokeninfofromremotestub_fuzzer/gethaptokeninfofromremotestub_fuzzer.cpp b/test/fuzztest/services/accesstoken/gethaptokeninfofromremotestub_fuzzer/gethaptokeninfofromremotestub_fuzzer.cpp index 7b0570a69..c0a79f4a8 100644 --- a/test/fuzztest/services/accesstoken/gethaptokeninfofromremotestub_fuzzer/gethaptokeninfofromremotestub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/gethaptokeninfofromremotestub_fuzzer/gethaptokeninfofromremotestub_fuzzer.cpp @@ -19,10 +19,11 @@ #include #include #undef private -#include "accesstoken_fuzzdata.h" + #include "accesstoken_info_manager.h" #include "accesstoken_kit.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "token_setproc.h" @@ -39,13 +40,14 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); + + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); if (!datas.WriteUint32(tokenId)) { - return false; + return false; } uint32_t code = static_cast( diff --git a/test/fuzztest/services/accesstoken/gethaptokeninfostub_fuzzer/gethaptokeninfostub_fuzzer.cpp b/test/fuzztest/services/accesstoken/gethaptokeninfostub_fuzzer/gethaptokeninfostub_fuzzer.cpp index 9f05b6060..3bb6219a2 100644 --- a/test/fuzztest/services/accesstoken/gethaptokeninfostub_fuzzer/gethaptokeninfostub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/gethaptokeninfostub_fuzzer/gethaptokeninfostub_fuzzer.cpp @@ -15,14 +15,8 @@ #include "gethaptokeninfostub_fuzzer.h" -#include -#include -#include -#include -#include -#undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "permission_def_parcel.h" @@ -38,9 +32,9 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - + + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); if (!datas.WriteUint32(tokenId)) { diff --git a/test/fuzztest/services/accesstoken/getkernelpermissionsstub_fuzzer/getkernelpermissionsstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getkernelpermissionsstub_fuzzer/getkernelpermissionsstub_fuzzer.cpp index 06c8c603e..0aedbb44b 100644 --- a/test/fuzztest/services/accesstoken/getkernelpermissionsstub_fuzzer/getkernelpermissionsstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getkernelpermissionsstub_fuzzer/getkernelpermissionsstub_fuzzer.cpp @@ -19,8 +19,9 @@ #include #include #undef private -#include "accesstoken_fuzzdata.h" + #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -33,8 +34,8 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); diff --git a/test/fuzztest/services/accesstoken/getnativetokenidstub_fuzzer/getnativetokenidstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getnativetokenidstub_fuzzer/getnativetokenidstub_fuzzer.cpp index 96f13c6c9..1f624fe38 100644 --- a/test/fuzztest/services/accesstoken/getnativetokenidstub_fuzzer/getnativetokenidstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getnativetokenidstub_fuzzer/getnativetokenidstub_fuzzer.cpp @@ -21,8 +21,9 @@ #include #include #undef private -#include "accesstoken_fuzzdata.h" + #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "permission_def_parcel.h" @@ -38,12 +39,13 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::string testName(fuzzData.GenerateStochasticString()); + + FuzzedDataProvider provider(data, size); + std::string processName = provider.ConsumeRandomLengthString(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!datas.WriteString(testName)) { + if (!datas.WriteString(processName)) { return false; } diff --git a/test/fuzztest/services/accesstoken/getnativetokeninfostub_fuzzer/getnativetokeninfostub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getnativetokeninfostub_fuzzer/getnativetokeninfostub_fuzzer.cpp index 505057e1e..2ff9c9ad2 100644 --- a/test/fuzztest/services/accesstoken/getnativetokeninfostub_fuzzer/getnativetokeninfostub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getnativetokeninfostub_fuzzer/getnativetokeninfostub_fuzzer.cpp @@ -21,8 +21,9 @@ #include #include #undef private -#include "accesstoken_fuzzdata.h" + #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -36,8 +37,9 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); + + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel inData; inData.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); if (!inData.WriteUint32(tokenId)) { diff --git a/test/fuzztest/services/accesstoken/getpermissionflagstub_fuzzer/getpermissionflagstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getpermissionflagstub_fuzzer/getpermissionflagstub_fuzzer.cpp index cc4c7fc5d..614ce18ce 100644 --- a/test/fuzztest/services/accesstoken/getpermissionflagstub_fuzzer/getpermissionflagstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getpermissionflagstub_fuzzer/getpermissionflagstub_fuzzer.cpp @@ -21,8 +21,9 @@ #include #include #undef private -#include "accesstoken_fuzzdata.h" + #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -36,12 +37,13 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - std::string testName(fuzzData.GenerateStochasticString()); + + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + std::string permissionName = provider.ConsumeRandomLengthString(); MessageParcel sendData; sendData.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!sendData.WriteUint32(tokenId) || !sendData.WriteString(testName)) { + if (!sendData.WriteUint32(tokenId) || !sendData.WriteString(permissionName)) { return false; } diff --git a/test/fuzztest/services/accesstoken/getpermissionrequesttogglestatusstub_fuzzer/getpermissionrequesttogglestatusstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getpermissionrequesttogglestatusstub_fuzzer/getpermissionrequesttogglestatusstub_fuzzer.cpp index 10b12bce5..6ca346a06 100644 --- a/test/fuzztest/services/accesstoken/getpermissionrequesttogglestatusstub_fuzzer/getpermissionrequesttogglestatusstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getpermissionrequesttogglestatusstub_fuzzer/getpermissionrequesttogglestatusstub_fuzzer.cpp @@ -21,8 +21,9 @@ #include #include #undef private -#include "accesstoken_fuzzdata.h" + #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -36,12 +37,13 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::string testName(fuzzData.GenerateStochasticString()); - int32_t userID = fuzzData.GetData(); + + FuzzedDataProvider provider(data, size); + std::string permissionName = provider.ConsumeRandomLengthString(); + int32_t userID = provider.ConsumeIntegral(); MessageParcel sendData; if (!sendData.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()) || - !sendData.WriteString(testName) || !sendData.WriteInt32(userID)) { + !sendData.WriteString(permissionName) || !sendData.WriteInt32(userID)) { return false; } diff --git a/test/fuzztest/services/accesstoken/getpermissionsstatusstub_fuzzer/getpermissionsstatusstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getpermissionsstatusstub_fuzzer/getpermissionsstatusstub_fuzzer.cpp index f06378e58..1b19b8a35 100644 --- a/test/fuzztest/services/accesstoken/getpermissionsstatusstub_fuzzer/getpermissionsstatusstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getpermissionsstatusstub_fuzzer/getpermissionsstatusstub_fuzzer.cpp @@ -24,6 +24,7 @@ #include "access_token.h" #include "accesstoken_kit.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "nativetoken_kit.h" #include "securec.h" @@ -39,110 +40,78 @@ namespace OHOS { const uint8_t *g_baseFuzzData = nullptr; size_t g_baseFuzzSize = 0; size_t g_baseFuzzPos = 0; - void GetNativeToken() + bool GetPermissionsStatusStubFuzzTest(const uint8_t* data, size_t size) { - uint64_t tokenId; - const char** perms = new (std::nothrow) const char *[1]; - if (perms == nullptr) { - return; + if ((data == nullptr) || (size == 0)) { + return false; } - perms[0] = "ohos.permission.GET_SENSITIVE_PERMISSIONS"; // 3 means the third permission - - NativeTokenInfoParams infoInstance = { - .dcapsNum = 0, - .permsNum = 1, - .aclsNum = 0, - .dcaps = nullptr, - .perms = perms, - .acls = nullptr, - .processName = "getpermissionsstatusstub_fuzzer_test", - .aplStr = "system_core", + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + std::string permissionName = provider.ConsumeRandomLengthString(); + PermissionListState perm = { + .permissionName = permissionName, + .state = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionOper::BUTT_OPER))), }; - - tokenId = GetAccessTokenId(&infoInstance); - SetSelfTokenID(tokenId); - AccessTokenKit::ReloadNativeTokenInfo(); - delete[] perms; - } - - /* - * describe: get data from outside untrusted data(g_data) which size is according to sizeof(T) - * tips: only support basic type - */ - template T GetData() - { - T object {}; - size_t objectSize = sizeof(object); - if (g_baseFuzzData == nullptr || objectSize > g_baseFuzzSize - g_baseFuzzPos) { - return object; + PermissionListStateParcel permParcel; + permParcel.permsState = perm; + MessageParcel datas; + datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); + if (!datas.WriteUint32(tokenId)) { + return false; } - errno_t ret = memcpy_s(&object, objectSize, g_baseFuzzData + g_baseFuzzPos, objectSize); - if (ret != EOK) { - return {}; + if (!datas.WriteParcelable(&permParcel)) { + return false; } - g_baseFuzzPos += objectSize; - return object; - } - std::string GetStringFromData(int strlen) - { - char cstr[strlen]; - cstr[strlen - 1] = '\0'; - for (int i = 0; i < strlen - 1; i++) { - cstr[i] = GetData(); + uint32_t code = static_cast( + IAccessTokenManagerIpcCode::COMMAND_GET_PERMISSIONS_STATUS); + MessageParcel reply; + MessageOption option; + bool enable = ((size % CONSTANTS_NUMBER_TWO) == 0); + if (enable) { + setuid(CONSTANTS_NUMBER_TWO); } - std::string str(cstr); - return str; + DelayedSingleton::GetInstance()->OnRemoteRequest(code, datas, reply, option); + setuid(ROOT_UID); + return true; } +} - bool GetPermissionsStatusStubFuzzTest(const uint8_t* data, size_t size) - { - if ((data == nullptr) || (size == 0)) { - return false; - } - int32_t result = RET_SUCCESS; - g_baseFuzzData = data; - g_baseFuzzSize = size; - g_baseFuzzPos = 0; - if (size > sizeof(uint32_t) + sizeof(std::string)) { - AccessTokenID tokenId = static_cast(GetData()); - std::string testPerName = GetStringFromData(int(size)); - PermissionListState perm = { - .permissionName = testPerName, - .state = SETTING_OPER, - }; - PermissionListStateParcel permParcel; - permParcel.permsState = perm; - MessageParcel datas; - datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!datas.WriteUint32(tokenId)) { - return false; - } - if (!datas.WriteParcelable(&permParcel)) { - return false; - } - - uint32_t code = static_cast( - IAccessTokenManagerIpcCode::COMMAND_GET_PERMISSIONS_STATUS); - MessageParcel reply; - MessageOption option; - bool enable = ((size % CONSTANTS_NUMBER_TWO) == 0); - if (enable) { - setuid(CONSTANTS_NUMBER_TWO); - } - DelayedSingleton::GetInstance()->OnRemoteRequest(code, datas, reply, option); - setuid(ROOT_UID); - } - return result == RET_SUCCESS; +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + uint64_t tokenId; + const char** perms = new (std::nothrow) const char *[1]; + if (perms == nullptr) { + return -1; } + + perms[0] = "ohos.permission.GET_SENSITIVE_PERMISSIONS"; // 3 means the third permission + + NativeTokenInfoParams infoInstance = { + .dcapsNum = 0, + .permsNum = 1, + .aclsNum = 0, + .dcaps = nullptr, + .perms = perms, + .acls = nullptr, + .processName = "getpermissionsstatusstub_fuzzer_test", + .aplStr = "system_core", + }; + + tokenId = GetAccessTokenId(&infoInstance); + SetSelfTokenID(tokenId); + AccessTokenKit::ReloadNativeTokenInfo(); + delete[] perms; + + return 0; } /* Fuzzer entry point */ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { /* Run your code on data */ - OHOS::GetNativeToken(); OHOS::GetPermissionsStatusStubFuzzTest(data, size); return 0; } diff --git a/test/fuzztest/services/accesstoken/getpermissionusedtypestub_fuzzer/getpermissionusedtypestub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getpermissionusedtypestub_fuzzer/getpermissionusedtypestub_fuzzer.cpp index 46d926281..4cc98a0b1 100644 --- a/test/fuzztest/services/accesstoken/getpermissionusedtypestub_fuzzer/getpermissionusedtypestub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getpermissionusedtypestub_fuzzer/getpermissionusedtypestub_fuzzer.cpp @@ -14,6 +14,7 @@ */ #include "getpermissionusedtypestub_fuzzer.h" + #include #include #include @@ -21,8 +22,9 @@ #include #include #undef private -#include "accesstoken_fuzzdata.h" + #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "hap_info_parcel.h" #include "iaccess_token_manager.h" @@ -38,9 +40,9 @@ bool GetPermissionUsedTypeStubFuzzTest(const uint8_t* data, size_t size) return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - std::string permissionName(fuzzData.GenerateStochasticString()); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + std::string permissionName = provider.ConsumeRandomLengthString(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); diff --git a/test/fuzztest/services/accesstoken/getremotehaptokeninfostub_fuzzer/getremotehaptokeninfostub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getremotehaptokeninfostub_fuzzer/getremotehaptokeninfostub_fuzzer.cpp index 1024f2c85..1c39a066f 100644 --- a/test/fuzztest/services/accesstoken/getremotehaptokeninfostub_fuzzer/getremotehaptokeninfostub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getremotehaptokeninfostub_fuzzer/getremotehaptokeninfostub_fuzzer.cpp @@ -19,7 +19,8 @@ #include #include #undef private -#include "accesstoken_fuzzdata.h" + +#include "fuzzer/FuzzedDataProvider.h" #include "i_token_sync_manager.h" #include "token_sync_manager_service.h" @@ -33,13 +34,13 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::string testName(fuzzData.GenerateStochasticString()); - AccessTokenID tokenId = fuzzData.GetData(); + FuzzedDataProvider provider(data, size); + std::string deviceID = provider.ConsumeRandomLengthString(); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(ITokenSyncManager::GetDescriptor()); - if (!datas.WriteString(testName)) { + if (!datas.WriteString(deviceID)) { return false; } if (!datas.WriteUint32(tokenId)) { diff --git a/test/fuzztest/services/accesstoken/getremotenativetokenidstub_fuzzer/getremotenativetokenidstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getremotenativetokenidstub_fuzzer/getremotenativetokenidstub_fuzzer.cpp index c752771ea..3c607f10a 100644 --- a/test/fuzztest/services/accesstoken/getremotenativetokenidstub_fuzzer/getremotenativetokenidstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getremotenativetokenidstub_fuzzer/getremotenativetokenidstub_fuzzer.cpp @@ -19,10 +19,11 @@ #include #include #undef private -#include "accesstoken_fuzzdata.h" + #include "accesstoken_info_manager.h" #include "accesstoken_kit.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "token_setproc.h" @@ -40,13 +41,13 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::string testName(fuzzData.GenerateStochasticString()); - AccessTokenID tokenId = fuzzData.GetData(); + FuzzedDataProvider provider(data, size); + std::string deviceID = provider.ConsumeRandomLengthString(); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!datas.WriteString(testName)) { + if (!datas.WriteString(deviceID)) { return false; } if (!datas.WriteUint32(tokenId)) { diff --git a/test/fuzztest/services/accesstoken/getreqpermissionbynamestub_fuzzer/getreqpermissionbynamestub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getreqpermissionbynamestub_fuzzer/getreqpermissionbynamestub_fuzzer.cpp index e0da7247c..e1a82def8 100644 --- a/test/fuzztest/services/accesstoken/getreqpermissionbynamestub_fuzzer/getreqpermissionbynamestub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getreqpermissionbynamestub_fuzzer/getreqpermissionbynamestub_fuzzer.cpp @@ -19,8 +19,9 @@ #include #include #undef private -#include "accesstoken_fuzzdata.h" + #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -33,9 +34,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - std::string permissionName = fuzzData.GenerateStochasticString(); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + std::string permissionName = provider.ConsumeRandomLengthString(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); if (!datas.WriteUint32(tokenId) || !datas.WriteString(permissionName)) { diff --git a/test/fuzztest/services/accesstoken/getreqpermissionsstub_fuzzer/getreqpermissionsstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getreqpermissionsstub_fuzzer/getreqpermissionsstub_fuzzer.cpp index 022a9113e..68722a954 100644 --- a/test/fuzztest/services/accesstoken/getreqpermissionsstub_fuzzer/getreqpermissionsstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getreqpermissionsstub_fuzzer/getreqpermissionsstub_fuzzer.cpp @@ -19,8 +19,9 @@ #include #include #undef private -#include "accesstoken_fuzzdata.h" + #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "permission_def_parcel.h" @@ -34,8 +35,9 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); + + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); diff --git a/test/fuzztest/services/accesstoken/getseccompenhancestub_fuzzer/getseccompenhancestub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getseccompenhancestub_fuzzer/getseccompenhancestub_fuzzer.cpp index 90b41c25d..726f7a327 100644 --- a/test/fuzztest/services/accesstoken/getseccompenhancestub_fuzzer/getseccompenhancestub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getseccompenhancestub_fuzzer/getseccompenhancestub_fuzzer.cpp @@ -19,10 +19,10 @@ #include #include -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" #undef private #include "errors.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "on_permission_used_record_callback_stub.h" #include "permission_used_request.h" @@ -38,11 +38,11 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!datas.WriteInt32(fuzzData.GetData())) { + if (!datas.WriteInt32(provider.ConsumeIntegral())) { return false; } diff --git a/test/fuzztest/services/accesstoken/getselfpermissionsstatestub_fuzzer/getselfpermissionsstatestub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getselfpermissionsstatestub_fuzzer/getselfpermissionsstatestub_fuzzer.cpp index a767372a2..211bd26b0 100644 --- a/test/fuzztest/services/accesstoken/getselfpermissionsstatestub_fuzzer/getselfpermissionsstatestub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getselfpermissionsstatestub_fuzzer/getselfpermissionsstatestub_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -33,10 +34,12 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); + + FuzzedDataProvider provider(data, size); PermissionListState perm = { - .permissionName = fuzzData.GenerateStochasticString(), - .state = SETTING_OPER, + .permissionName = provider.ConsumeRandomLengthString(), + .state = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionOper::BUTT_OPER))), }; PermissionListStateParcel permParcel; permParcel.permsState = perm; diff --git a/test/fuzztest/services/accesstoken/getselfpermissionstatusstub_fuzzer/getselfpermissionstatusstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getselfpermissionstatusstub_fuzzer/getselfpermissionstatusstub_fuzzer.cpp index 5587af8d2..6de8ea977 100644 --- a/test/fuzztest/services/accesstoken/getselfpermissionstatusstub_fuzzer/getselfpermissionstatusstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/getselfpermissionstatusstub_fuzzer/getselfpermissionstatusstub_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -33,8 +34,9 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::string permissionName = fuzzData.GenerateStochasticString(); + + FuzzedDataProvider provider(data, size); + std::string permissionName = provider.ConsumeRandomLengthString(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); if (!datas.WriteString(permissionName)) { diff --git a/test/fuzztest/services/accesstoken/gettokenidbyuseridstub_fuzzer/gettokenidbyuseridstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/gettokenidbyuseridstub_fuzzer/gettokenidbyuseridstub_fuzzer.cpp index a3b3cc411..6d2678cfe 100644 --- a/test/fuzztest/services/accesstoken/gettokenidbyuseridstub_fuzzer/gettokenidbyuseridstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/gettokenidbyuseridstub_fuzzer/gettokenidbyuseridstub_fuzzer.cpp @@ -16,8 +16,8 @@ #include "gettokenidbyuseridstub_fuzzer.h" #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -30,12 +30,12 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - int32_t userID = fuzzData.GetData(); + int32_t userID = provider.ConsumeIntegral(); if (!datas.WriteInt32(userID)) { return false; } diff --git a/test/fuzztest/services/accesstoken/gettokentypestub_fuzzer/gettokentypestub_fuzzer.cpp b/test/fuzztest/services/accesstoken/gettokentypestub_fuzzer/gettokentypestub_fuzzer.cpp index 7a21b62dd..3c9a47a65 100644 --- a/test/fuzztest/services/accesstoken/gettokentypestub_fuzzer/gettokentypestub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/gettokentypestub_fuzzer/gettokentypestub_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -33,8 +34,8 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel in; in.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); if (!in.WriteUint32(tokenId)) { diff --git a/test/fuzztest/services/accesstoken/grantpermissionforspecifiedtimestub_fuzzer/grantpermissionforspecifiedtimestub_fuzzer.cpp b/test/fuzztest/services/accesstoken/grantpermissionforspecifiedtimestub_fuzzer/grantpermissionforspecifiedtimestub_fuzzer.cpp index 538cb8efc..d9f5580a9 100644 --- a/test/fuzztest/services/accesstoken/grantpermissionforspecifiedtimestub_fuzzer/grantpermissionforspecifiedtimestub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/grantpermissionforspecifiedtimestub_fuzzer/grantpermissionforspecifiedtimestub_fuzzer.cpp @@ -20,9 +20,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "hap_info_parcel.h" #include "iaccess_token_manager.h" @@ -38,10 +39,10 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - std::string permissionName(fuzzData.GenerateStochasticString()); - uint32_t onceTime = fuzzData.GetData(); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + std::string permissionName = provider.ConsumeRandomLengthString(); + uint32_t onceTime = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); if (!datas.WriteUint32(tokenId) || !datas.WriteString(permissionName) || diff --git a/test/fuzztest/services/accesstoken/grantpermissionstub_fuzzer/grantpermissionstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/grantpermissionstub_fuzzer/grantpermissionstub_fuzzer.cpp index 2985e0195..b76a4f277 100644 --- a/test/fuzztest/services/accesstoken/grantpermissionstub_fuzzer/grantpermissionstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/grantpermissionstub_fuzzer/grantpermissionstub_fuzzer.cpp @@ -20,12 +20,13 @@ #include #include #include + #undef private #include "access_token.h" -#include "accesstoken_fuzzdata.h" #include "accesstoken_info_manager.h" #include "accesstoken_kit.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "token_setproc.h" @@ -54,13 +55,15 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - std::string testName(fuzzData.GenerateStochasticString()); + + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + std::string permissionName = provider.ConsumeRandomLengthString(); + uint32_t flag = provider.ConsumeIntegralInRange( + 0, static_cast(PermissionFlag::PERMISSION_ALLOW_THIS_TIME)); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!datas.WriteUint32(tokenId) || !datas.WriteString(testName) || - !datas.WriteInt32(PERMISSION_USER_SET)) { + if (!datas.WriteUint32(tokenId) || !datas.WriteString(permissionName) || !datas.WriteInt32(flag)) { return false; } diff --git a/test/fuzztest/services/accesstoken/inithaptokenstub_fuzzer/inithaptokenstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/inithaptokenstub_fuzzer/inithaptokenstub_fuzzer.cpp index ea023f93c..fd2cec315 100644 --- a/test/fuzztest/services/accesstoken/inithaptokenstub_fuzzer/inithaptokenstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/inithaptokenstub_fuzzer/inithaptokenstub_fuzzer.cpp @@ -14,15 +14,11 @@ */ #include "inithaptokenstub_fuzzer.h" -#include -#include -#include + #include -#include -#include -#include "accesstoken_fuzzdata.h" -#undef private + #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "hap_info_parcel.h" #include "iaccess_token_manager.h" @@ -32,44 +28,68 @@ const int CONSTANTS_NUMBER_TWO = 2; static const int32_t ROOT_UID = 0; namespace OHOS { - void ConstructorParam(AccessTokenFuzzData& fuzzData, HapInfoParcel& hapInfoParcel, HapPolicyParcel& hapPolicyParcel) + void InitHapInfoParams(const std::string& bundleName, FuzzedDataProvider& provider, HapInfoParams& param) + { + param.userID = provider.ConsumeIntegral(); + param.bundleName = bundleName; + param.instIndex = provider.ConsumeIntegral(); + param.dlpType = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(HapDlpType::BUTT_DLP_TYPE))); + param.appIDDesc = provider.ConsumeRandomLengthString(); + param.apiVersion = provider.ConsumeIntegral(); + param.isSystemApp = provider.ConsumeBool(); + param.appDistributionType = provider.ConsumeRandomLengthString(); + param.isRestore = provider.ConsumeBool(); + param.tokenID = provider.ConsumeIntegral(); + param.isAtomicService = provider.ConsumeBool(); + } + + void InitHapPolicy(const std::string& permissionName, const std::string& bundleName, FuzzedDataProvider& provider, + HapPolicy& policy) { - std::string permissionName = fuzzData.GenerateStochasticString(); - std::string bundleName = fuzzData.GenerateStochasticString(); - PermissionDef testPermDef = { + PermissionDef def = { .permissionName = permissionName, .bundleName = bundleName, - .grantMode = 1, - .availableLevel = APL_NORMAL, - .label = fuzzData.GenerateStochasticString(), - .labelId = 1, - .description = fuzzData.GenerateStochasticString(), - .descriptionId = 1}; - PermissionStatus testState = { - .permissionName = permissionName, - .grantStatus = PermissionState::PERMISSION_GRANTED, - .grantFlag = 1, + .grantMode = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(GrantMode::SYSTEM_GRANT))), + .availableLevel = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(ATokenAplEnum::APL_ENUM_BUTT))), + .provisionEnable = provider.ConsumeBool(), + .distributedSceneEnable = provider.ConsumeBool(), + .label = provider.ConsumeRandomLengthString(), + .labelId = provider.ConsumeIntegral(), + .description = provider.ConsumeRandomLengthString(), + .descriptionId = provider.ConsumeIntegral(), + .availableType = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(ATokenAvailableTypeEnum::AVAILABLE_TYPE_BUTT))), + .isKernelEffect = provider.ConsumeBool(), + .hasValue = provider.ConsumeBool(), }; - HapInfoParams testInfoParms = { - .userID = 1, - .bundleName = bundleName, - .instIndex = 0, - .appIDDesc = fuzzData.GenerateStochasticString()}; - PreAuthorizationInfo info1 = { + + PermissionStatus state = { .permissionName = permissionName, - .userCancelable = true + .grantStatus = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionState::PERMISSION_GRANTED))), + .grantFlag = provider.ConsumeIntegralInRange( + 0, static_cast(PermissionFlag::PERMISSION_ALLOW_THIS_TIME)), }; - HapPolicy testPolicy = { - .apl = APL_NORMAL, - .domain = fuzzData.GenerateStochasticString(), - .permList = {testPermDef}, - .permStateList = {testState}, - .aclRequestedList = {permissionName}, - .preAuthorizationInfo = {info1} + + PreAuthorizationInfo info = { + .permissionName = permissionName, + .userCancelable = provider.ConsumeBool(), }; - hapInfoParcel.hapInfoParameter = testInfoParms; - hapPolicyParcel.hapPolicy = testPolicy; + policy.apl = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(ATokenAplEnum::APL_ENUM_BUTT))); + policy.domain = provider.ConsumeRandomLengthString(); + policy.permList = { def }; + policy.permStateList = { state }; + policy.aclRequestedList = {provider.ConsumeRandomLengthString()}; + policy.preAuthorizationInfo = { info }; + policy.checkIgnore = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(HapPolicyCheckIgnore::ACL_IGNORE_CHECK))); + policy.aclExtendedMap = {std::make_pair(provider.ConsumeRandomLengthString(), + provider.ConsumeRandomLengthString())}; } bool InitHapTokenStubFuzzTest(const uint8_t* data, size_t size) @@ -78,10 +98,15 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); + std::string permissionName = provider.ConsumeRandomLengthString(); + std::string bundleName = provider.ConsumeRandomLengthString(); + HapInfoParcel hapInfoParcel; + InitHapInfoParams(bundleName, provider, hapInfoParcel.hapInfoParameter); + HapPolicyParcel hapPolicyParcel; - ConstructorParam(fuzzData, hapInfoParcel, hapPolicyParcel); + InitHapPolicy(permissionName, bundleName, provider, hapPolicyParcel.hapPolicy); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); diff --git a/test/fuzztest/services/accesstoken/inituserpolicystub_fuzzer/inituserpolicystub_fuzzer.cpp b/test/fuzztest/services/accesstoken/inituserpolicystub_fuzzer/inituserpolicystub_fuzzer.cpp index 9d2a9b91d..51d818763 100644 --- a/test/fuzztest/services/accesstoken/inituserpolicystub_fuzzer/inituserpolicystub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/inituserpolicystub_fuzzer/inituserpolicystub_fuzzer.cpp @@ -18,11 +18,12 @@ #include #include #include + #undef private #include "access_token.h" -#include "accesstoken_fuzzdata.h" #include "accesstoken_kit.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "nativetoken_kit.h" #include "token_setproc.h" @@ -79,11 +80,11 @@ void ClearUserPolicy() static_cast(IAccessTokenManagerIpcCode::COMMAND_CLEAR_USER_POLICY), datas, reply, option); } -void UpdateUserPolicy(AccessTokenFuzzData &fuzzData) +void UpdateUserPolicy(FuzzedDataProvider& provider) { - UserState userList; - userList.userId = fuzzData.GetData(); - userList.isActive = fuzzData.GenerateStochasticBool(); + UserStateIdl dataBlock; + dataBlock.userId = provider.ConsumeIntegral(); + dataBlock.isActive = provider.ConsumeBool(); MessageParcel datas; if (!datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor())) { @@ -92,10 +93,7 @@ void UpdateUserPolicy(AccessTokenFuzzData &fuzzData) if (!datas.WriteUint32(1)) { return; } - if (!datas.WriteInt32(userList.userId)) { - return; - } - if (!datas.WriteBool(userList.isActive)) { + if (UserStateIdlBlockMarshalling(datas, dataBlock) != ERR_NONE) { return; } @@ -111,12 +109,12 @@ bool InitUserPolicyStubFuzzTest(const uint8_t* data, size_t size) return false; } - AccessTokenFuzzData fuzzData(data, size); - std::string testName(fuzzData.GenerateStochasticString()); + FuzzedDataProvider provider(data, size); + std::string permissionName = provider.ConsumeRandomLengthString(); - UserState userList; - userList.userId = fuzzData.GetData(); - userList.isActive = fuzzData.GenerateStochasticBool(); + UserStateIdl dataBlock; + dataBlock.userId = provider.ConsumeIntegral(); + dataBlock.isActive = provider.ConsumeBool(); MessageParcel datas; if (!datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor())) { @@ -125,16 +123,13 @@ bool InitUserPolicyStubFuzzTest(const uint8_t* data, size_t size) if (!datas.WriteUint32(1)) { return false; } - if (!datas.WriteUint32(1)) { + if (UserStateIdlBlockMarshalling(datas, dataBlock) != ERR_NONE) { return false; } - if (!datas.WriteInt32(userList.userId)) { - return false; - } - if (!datas.WriteBool(userList.isActive)) { + if (!datas.WriteUint32(1)) { return false; } - if (!datas.WriteString(testName)) { + if (!datas.WriteString(permissionName)) { return false; } @@ -150,7 +145,7 @@ bool InitUserPolicyStubFuzzTest(const uint8_t* data, size_t size) (void)SetSelfTokenID(g_selfTokenId); } DelayedSingleton::GetInstance()->OnRemoteRequest(code, datas, reply, option); - UpdateUserPolicy(fuzzData); + UpdateUserPolicy(provider); ClearUserPolicy(); return true; diff --git a/test/fuzztest/services/accesstoken/registerpermstatechangecallbackstub_fuzzer/registerpermstatechangecallbackstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/registerpermstatechangecallbackstub_fuzzer/registerpermstatechangecallbackstub_fuzzer.cpp index 0bbce87b5..aaafac5b8 100644 --- a/test/fuzztest/services/accesstoken/registerpermstatechangecallbackstub_fuzzer/registerpermstatechangecallbackstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/registerpermstatechangecallbackstub_fuzzer/registerpermstatechangecallbackstub_fuzzer.cpp @@ -18,10 +18,11 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_client.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -52,12 +53,12 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - std::string testName(fuzzData.GenerateStochasticString()); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + std::string permissionName = provider.ConsumeRandomLengthString(); PermStateChangeScope scopeInfo; - scopeInfo.permList = { testName }; + scopeInfo.permList = { permissionName }; scopeInfo.tokenIDs = { tokenId }; auto callbackPtr = std::make_shared(scopeInfo); diff --git a/test/fuzztest/services/accesstoken/registerseccompenhancestub_fuzzer/registerseccompenhancestub_fuzzer.cpp b/test/fuzztest/services/accesstoken/registerseccompenhancestub_fuzzer/registerseccompenhancestub_fuzzer.cpp index 84cedc885..ac2884f32 100644 --- a/test/fuzztest/services/accesstoken/registerseccompenhancestub_fuzzer/registerseccompenhancestub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/registerseccompenhancestub_fuzzer/registerseccompenhancestub_fuzzer.cpp @@ -20,10 +20,10 @@ #include #include "accesstoken_callbacks.h" -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" #undef private #include "errors.h" +#include "fuzzer/FuzzedDataProvider.h" #include "hap_token_info.h" #include "iaccess_token_manager.h" #include "on_permission_used_record_callback_stub.h" @@ -63,18 +63,17 @@ public: return false; } + FuzzedDataProvider provider(data, size); sptr callback = sptr(new (std::nothrow) TokenSyncCallback(std::make_shared())); - AccessTokenFuzzData fuzzData(data, size); - SecCompEnhanceData secData; secData.callback = callback->AsObject(); - secData.pid = fuzzData.GetData(); - secData.token = static_cast(fuzzData.GetData()); - secData.challenge = fuzzData.GetData(); - secData.sessionId = fuzzData.GetData(); - secData.seqNum = fuzzData.GetData(); + secData.pid = provider.ConsumeIntegral(); + secData.token = provider.ConsumeIntegral(); + secData.challenge = provider.ConsumeIntegral(); + secData.sessionId = provider.ConsumeIntegral(); + secData.seqNum = provider.ConsumeIntegral(); if (size < AES_KEY_STORAGE_LEN) { return false; } diff --git a/test/fuzztest/services/accesstoken/registerselfpermstatechangecallbackstub_fuzzer/registerselfpermstatechangecallbackstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/registerselfpermstatechangecallbackstub_fuzzer/registerselfpermstatechangecallbackstub_fuzzer.cpp index b1d6293f0..6de50c661 100644 --- a/test/fuzztest/services/accesstoken/registerselfpermstatechangecallbackstub_fuzzer/registerselfpermstatechangecallbackstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/registerselfpermstatechangecallbackstub_fuzzer/registerselfpermstatechangecallbackstub_fuzzer.cpp @@ -18,14 +18,15 @@ #include #include #include + #undef private #include "access_token.h" -#include "accesstoken_fuzzdata.h" #define private public #include "accesstoken_id_manager.h" #include "accesstoken_kit.h" #include "accesstoken_manager_client.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "token_setproc.h" @@ -85,12 +86,12 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - std::string testName(fuzzData.GenerateStochasticString()); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + std::string permissionName = provider.ConsumeRandomLengthString(); PermStateChangeScope scopeInfo; - scopeInfo.permList = { testName }; + scopeInfo.permList = { permissionName }; scopeInfo.tokenIDs = { tokenId }; auto callbackPtr = std::make_shared(scopeInfo); diff --git a/test/fuzztest/services/accesstoken/requestapppermonsettingstub_fuzzer/requestapppermonsettingstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/requestapppermonsettingstub_fuzzer/requestapppermonsettingstub_fuzzer.cpp index bcd22753e..958918019 100644 --- a/test/fuzztest/services/accesstoken/requestapppermonsettingstub_fuzzer/requestapppermonsettingstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/requestapppermonsettingstub_fuzzer/requestapppermonsettingstub_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -33,8 +34,8 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); diff --git a/test/fuzztest/services/accesstoken/revokepermissionstub_fuzzer/revokepermissionstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/revokepermissionstub_fuzzer/revokepermissionstub_fuzzer.cpp index 30d69e7df..c344df439 100644 --- a/test/fuzztest/services/accesstoken/revokepermissionstub_fuzzer/revokepermissionstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/revokepermissionstub_fuzzer/revokepermissionstub_fuzzer.cpp @@ -20,9 +20,10 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -37,14 +38,16 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - std::string testName(fuzzData.GenerateStochasticString()); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + std::string testName = provider.ConsumeRandomLengthString(); + uint32_t flag = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionFlag::PERMISSION_ALLOW_THIS_TIME))); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); if (!datas.WriteUint32(tokenId) || !datas.WriteString(testName) || - !datas.WriteInt32(PERMISSION_DEFAULT_FLAG)) { + !datas.WriteInt32(flag)) { return false; } uint32_t code = static_cast( diff --git a/test/fuzztest/services/accesstoken/setfirstcallertokenid_fuzzer/setfirstcallertokenid_fuzzer.cpp b/test/fuzztest/services/accesstoken/setfirstcallertokenid_fuzzer/setfirstcallertokenid_fuzzer.cpp index 0f5a1cb72..0cdebca53 100644 --- a/test/fuzztest/services/accesstoken/setfirstcallertokenid_fuzzer/setfirstcallertokenid_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/setfirstcallertokenid_fuzzer/setfirstcallertokenid_fuzzer.cpp @@ -18,12 +18,12 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #include "token_setproc.h" using namespace std; -using namespace OHOS::Security::AccessToken; namespace OHOS { bool SetFirstCallerTokenIDFuzzTest(const uint8_t* data, size_t size) @@ -32,8 +32,8 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - SetSelfTokenID(fuzzData.GetData()); + FuzzedDataProvider provider(data, size); + SetSelfTokenID(provider.ConsumeIntegral()); return true; } diff --git a/test/fuzztest/services/accesstoken/setpermdialogcap_fuzzer/setpermdialogcap_fuzzer.cpp b/test/fuzztest/services/accesstoken/setpermdialogcap_fuzzer/setpermdialogcap_fuzzer.cpp index ba4ad29f9..478721e78 100644 --- a/test/fuzztest/services/accesstoken/setpermdialogcap_fuzzer/setpermdialogcap_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/setpermdialogcap_fuzzer/setpermdialogcap_fuzzer.cpp @@ -18,11 +18,12 @@ #include #include #include + #undef private #include "access_token.h" -#include "accesstoken_fuzzdata.h" #include "accesstoken_kit.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "nativetoken_kit.h" #include "securec.h" @@ -65,11 +66,11 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); HapBaseInfoParcel baseInfoParcel; - baseInfoParcel.hapBaseInfo.userID = fuzzData.GetData(); - baseInfoParcel.hapBaseInfo.bundleName = fuzzData.GenerateStochasticString(); - baseInfoParcel.hapBaseInfo.instIndex = fuzzData.GetData(); + baseInfoParcel.hapBaseInfo.userID = provider.ConsumeIntegral(); + baseInfoParcel.hapBaseInfo.bundleName = provider.ConsumeRandomLengthString(); + baseInfoParcel.hapBaseInfo.instIndex = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); @@ -86,11 +87,16 @@ namespace OHOS { } } +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + OHOS::GetNativeToken(); + return 0; +} + /* Fuzzer entry point */ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { /* Run your code on data */ - OHOS::GetNativeToken(); OHOS::SetPermDialogCapFuzzTest(data, size); return 0; } diff --git a/test/fuzztest/services/accesstoken/setpermissionrequesttogglestatusstub_fuzzer/setpermissionrequesttogglestatusstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/setpermissionrequesttogglestatusstub_fuzzer/setpermissionrequesttogglestatusstub_fuzzer.cpp index 7e98d5860..5125344a3 100644 --- a/test/fuzztest/services/accesstoken/setpermissionrequesttogglestatusstub_fuzzer/setpermissionrequesttogglestatusstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/setpermissionrequesttogglestatusstub_fuzzer/setpermissionrequesttogglestatusstub_fuzzer.cpp @@ -20,9 +20,10 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -37,13 +38,13 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::string testName(fuzzData.GenerateStochasticString()); - uint32_t status = fuzzData.GetData(); - int32_t userID = fuzzData.GetData(); + FuzzedDataProvider provider(data, size); + std::string permissionName = provider.ConsumeRandomLengthString(); + uint32_t status = provider.ConsumeIntegral(); + int32_t userID = provider.ConsumeIntegral(); MessageParcel sendData; if (!sendData.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()) || - !sendData.WriteString(testName) || !sendData.WriteUint32(status) || + !sendData.WriteString(permissionName) || !sendData.WriteUint32(status) || !sendData.WriteInt32(userID)) { return false; } diff --git a/test/fuzztest/services/accesstoken/setremotehaptokeninfostub_fuzzer/setremotehaptokeninfostub_fuzzer.cpp b/test/fuzztest/services/accesstoken/setremotehaptokeninfostub_fuzzer/setremotehaptokeninfostub_fuzzer.cpp index 4f3329119..0789b3080 100644 --- a/test/fuzztest/services/accesstoken/setremotehaptokeninfostub_fuzzer/setremotehaptokeninfostub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/setremotehaptokeninfostub_fuzzer/setremotehaptokeninfostub_fuzzer.cpp @@ -16,14 +16,13 @@ #include "setremotehaptokeninfostub_fuzzer.h" #include -#include #include -#undef private + #include "access_token.h" -#include "accesstoken_fuzzdata.h" #include "accesstoken_info_manager.h" #include "accesstoken_kit.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "permission_state_full.h" #include "token_setproc.h" @@ -36,51 +35,50 @@ const int CONSTANTS_NUMBER_TWO = 2; namespace OHOS { #ifdef TOKEN_SYNC_ENABLE - void ConstructorParam( - AccessTokenFuzzData& fuzzData, AccessTokenID tokenId, HapTokenInfoForSyncParcel& hapSyncParcel) + void InitRemoteTokenInfo(FuzzedDataProvider& provider, HapTokenInfoForSync& remoteTokenInfo) { - std::string permissionName(fuzzData.GenerateStochasticString()); HapTokenInfo baseInfo = { - .ver = 1, - .userID = 1, - .bundleName = fuzzData.GenerateStochasticString(), - .instIndex = 1, - .tokenID = tokenId, - .tokenAttr = 0 + .ver = '1', + .userID = provider.ConsumeIntegral(), + .bundleName = provider.ConsumeRandomLengthString(), + .apiVersion = provider.ConsumeIntegral(), + .instIndex = provider.ConsumeIntegral(), + .dlpType = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(HapDlpType::BUTT_DLP_TYPE))), + .tokenID = provider.ConsumeIntegral(), + .tokenAttr = provider.ConsumeIntegral(), }; - PermissionStatus infoManagerTestState = { - .grantFlag = PermissionFlag::PERMISSION_SYSTEM_FIXED, - .grantStatus = PermissionState::PERMISSION_GRANTED, - .permissionName = permissionName}; - PermissionStatus infoManagerTestState2 = { - .grantFlag = PermissionFlag::PERMISSION_USER_SET, - .grantStatus = PermissionState::PERMISSION_DENIED, - .permissionName = permissionName}; - std::vector permStateList; - permStateList.emplace_back(infoManagerTestState); - HapTokenInfoForSync remoteTokenInfo = { - .baseInfo = baseInfo, - .permStateList = permStateList + + PermissionStatus state = { + .permissionName = provider.ConsumeRandomLengthString(), + .grantStatus = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionState::PERMISSION_GRANTED))), + .grantFlag = provider.ConsumeIntegralInRange( + 0, static_cast(PermissionFlag::PERMISSION_ALLOW_THIS_TIME)) }; - hapSyncParcel.hapTokenInfoForSyncParams = remoteTokenInfo; + std::vector permStateList = { state }; + + remoteTokenInfo.baseInfo = baseInfo; + remoteTokenInfo.permStateList = permStateList; } #endif bool SetRemoteHapTokenInfoStubFuzzTest(const uint8_t* data, size_t size) { - #ifdef TOKEN_SYNC_ENABLE if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); +#ifdef TOKEN_SYNC_ENABLE + FuzzedDataProvider provider(data, size); + std::string deviceID = provider.ConsumeRandomLengthString(); + HapTokenInfoForSyncParcel hapSyncParcel; - ConstructorParam(fuzzData, tokenId, hapSyncParcel); + InitRemoteTokenInfo(provider, hapSyncParcel.hapTokenInfoForSyncParams); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!datas.WriteString(fuzzData.GenerateStochasticString())) { + if (!datas.WriteString(deviceID)) { return false; } if (!datas.WriteParcelable(&hapSyncParcel)) { diff --git a/test/fuzztest/services/accesstoken/updatehaptokenstub_fuzzer/updatehaptokenstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/updatehaptokenstub_fuzzer/updatehaptokenstub_fuzzer.cpp index e9763360a..f4f7dec73 100644 --- a/test/fuzztest/services/accesstoken/updatehaptokenstub_fuzzer/updatehaptokenstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/updatehaptokenstub_fuzzer/updatehaptokenstub_fuzzer.cpp @@ -15,15 +15,9 @@ #include "updatehaptokenstub_fuzzer.h" -#include -#include -#include -#include #include -#include -#include -#undef private -#include "accesstoken_fuzzdata.h" + +#include "fuzzer/FuzzedDataProvider.h" #include "service/accesstoken_manager_service.h" using namespace std; @@ -32,49 +26,80 @@ const int CONSTANTS_NUMBER_TWO = 2; static const int32_t ROOT_UID = 0; namespace OHOS { - void ConstructorParam(AccessTokenFuzzData& fuzzData, HapPolicyParcel& hapPolicyParcel) + void InitHapPolicy(FuzzedDataProvider& provider, HapPolicy& policy) { - std::string permissionName(fuzzData.GenerateStochasticString()); - PermissionDef testPermDef = {.permissionName = permissionName, - .bundleName = fuzzData.GenerateStochasticString(), - .grantMode = 1, - .availableLevel = APL_NORMAL, - .label = fuzzData.GenerateStochasticString(), - .labelId = 1, - .description = fuzzData.GenerateStochasticString(), - .descriptionId = 1}; - PermissionStatus testState = {.permissionName = permissionName, - .grantStatus = PermissionState::PERMISSION_GRANTED, - .grantFlag = 1}; - HapPolicy policy = {.apl = APL_NORMAL, - .domain = fuzzData.GenerateStochasticString(), - .permList = {testPermDef}, - .permStateList = {testState}}; - hapPolicyParcel.hapPolicy = policy; + std::string permissionName = provider.ConsumeRandomLengthString(); + PermissionDef def = { + .permissionName = permissionName, + .bundleName = provider.ConsumeRandomLengthString(), + .grantMode = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(GrantMode::SYSTEM_GRANT))), + .availableLevel = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(ATokenAplEnum::APL_ENUM_BUTT))), + .provisionEnable = provider.ConsumeBool(), + .distributedSceneEnable = provider.ConsumeBool(), + .label = provider.ConsumeRandomLengthString(), + .labelId = provider.ConsumeIntegral(), + .description = provider.ConsumeRandomLengthString(), + .descriptionId = provider.ConsumeIntegral(), + .availableType = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(ATokenAvailableTypeEnum::AVAILABLE_TYPE_BUTT))), + .isKernelEffect = provider.ConsumeBool(), + .hasValue = provider.ConsumeBool(), + }; + + PermissionStatus state = { + .permissionName = permissionName, + .grantStatus = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionState::PERMISSION_GRANTED))), + .grantFlag = provider.ConsumeIntegralInRange( + 0, static_cast(PermissionFlag::PERMISSION_ALLOW_THIS_TIME)), + }; + + PreAuthorizationInfo info = { + .permissionName = permissionName, + .userCancelable = provider.ConsumeBool(), + }; + + policy.apl = static_cast( + provider.ConsumeIntegralInRange(0, static_cast(ATokenAplEnum::APL_ENUM_BUTT))); + policy.domain = provider.ConsumeRandomLengthString(); + policy.permList = { def }; + policy.permStateList = { state }; + policy.aclRequestedList = {provider.ConsumeRandomLengthString()}; + policy.preAuthorizationInfo = { info }; + policy.checkIgnore = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(HapPolicyCheckIgnore::ACL_IGNORE_CHECK))); + policy.aclExtendedMap = {std::make_pair(provider.ConsumeRandomLengthString(), + provider.ConsumeRandomLengthString())}; } + bool UpdateHapTokenStubFuzzTest(const uint8_t* data, size_t size) { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - int32_t apiVersion = 8; + + FuzzedDataProvider provider(data, size); + uint64_t fullTokenId = provider.ConsumeIntegral(); + UpdateHapInfoParamsIdl infoIdl = { + .appIDDesc = provider.ConsumeRandomLengthString(), + .apiVersion = provider.ConsumeIntegral(), + .isSystemApp = provider.ConsumeBool(), + .appDistributionType = provider.ConsumeRandomLengthString(), + .isAtomicService = provider.ConsumeBool(), + .dataRefresh = provider.ConsumeBool(), + }; + HapPolicyParcel hapPolicyParcel; - ConstructorParam(fuzzData, hapPolicyParcel); + InitHapPolicy(provider, hapPolicyParcel.hapPolicy); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!datas.WriteUint32(tokenId)) { - return false; - } - if (!datas.WriteBool(false)) { - return false; - } - if (!datas.WriteString(fuzzData.GenerateStochasticString())) { + if (!datas.WriteUint32(fullTokenId)) { return false; } - if (!datas.WriteInt32(apiVersion)) { + if (UpdateHapInfoParamsIdlBlockMarshalling(datas, infoIdl) != ERR_NONE) { return false; } if (!datas.WriteParcelable(&hapPolicyParcel)) { diff --git a/test/fuzztest/services/accesstoken/updateseccompenhancestub_fuzzer/updateseccompenhancestub_fuzzer.cpp b/test/fuzztest/services/accesstoken/updateseccompenhancestub_fuzzer/updateseccompenhancestub_fuzzer.cpp index c8ecc626e..3c588fde1 100644 --- a/test/fuzztest/services/accesstoken/updateseccompenhancestub_fuzzer/updateseccompenhancestub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/updateseccompenhancestub_fuzzer/updateseccompenhancestub_fuzzer.cpp @@ -19,10 +19,10 @@ #include #include -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" #undef private #include "errors.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "on_permission_used_record_callback_stub.h" #include "permission_used_request.h" @@ -38,15 +38,15 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!datas.WriteInt32(fuzzData.GetData())) { + if (!datas.WriteInt32(provider.ConsumeIntegral())) { return false; } - if (!datas.WriteUint32(fuzzData.GetData())) { + if (!datas.WriteUint32(provider.ConsumeIntegral())) { return false; } diff --git a/test/fuzztest/services/accesstoken/updateuserpolicystub_fuzzer/updateuserpolicystub_fuzzer.cpp b/test/fuzztest/services/accesstoken/updateuserpolicystub_fuzzer/updateuserpolicystub_fuzzer.cpp index bfc6d5626..0dbec3788 100644 --- a/test/fuzztest/services/accesstoken/updateuserpolicystub_fuzzer/updateuserpolicystub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/updateuserpolicystub_fuzzer/updateuserpolicystub_fuzzer.cpp @@ -18,11 +18,12 @@ #include #include #include + #undef private #include "access_token.h" -#include "accesstoken_fuzzdata.h" #include "accesstoken_kit.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" #include "nativetoken_kit.h" #include "token_setproc.h" @@ -70,21 +71,18 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); - UserState userList; - userList.userId = fuzzData.GetData(); - userList.isActive = fuzzData.GenerateStochasticBool(); + UserStateIdl dataBlock; + dataBlock.userId = provider.ConsumeIntegral(); + dataBlock.isActive = provider.ConsumeBool(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); if (!datas.WriteUint32(1)) { return false; } - if (!datas.WriteInt32(userList.userId)) { - return false; - } - if (!datas.WriteBool(userList.isActive)) { + if (UserStateIdlBlockMarshalling(datas, dataBlock) != ERR_NONE) { return false; } diff --git a/test/fuzztest/services/accesstoken/verifyaccesstokenstub_fuzzer/verifyaccesstokenstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/verifyaccesstokenstub_fuzzer/verifyaccesstokenstub_fuzzer.cpp index 7575cc237..c8a1063ff 100644 --- a/test/fuzztest/services/accesstoken/verifyaccesstokenstub_fuzzer/verifyaccesstokenstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/verifyaccesstokenstub_fuzzer/verifyaccesstokenstub_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -33,13 +34,13 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - std::string testName(fuzzData.GenerateStochasticString()); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + std::string permissionName = provider.ConsumeRandomLengthString(); MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); - if (!datas.WriteUint32(tokenId) || !datas.WriteString(testName)) { + if (!datas.WriteUint32(tokenId) || !datas.WriteString(permissionName)) { return false; } diff --git a/test/fuzztest/services/accesstoken/verifyaccesstokenwithliststub_fuzzer/verifyaccesstokenwithliststub_fuzzer.cpp b/test/fuzztest/services/accesstoken/verifyaccesstokenwithliststub_fuzzer/verifyaccesstokenwithliststub_fuzzer.cpp index b6ddf6902..0c7351ac9 100644 --- a/test/fuzztest/services/accesstoken/verifyaccesstokenwithliststub_fuzzer/verifyaccesstokenwithliststub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/verifyaccesstokenwithliststub_fuzzer/verifyaccesstokenwithliststub_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_manager_service.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iaccess_token_manager.h" using namespace std; @@ -34,13 +35,13 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); - int permSize = fuzzData.GetData() % MAX_PERMISSION_SIZE; + int32_t permSize = provider.ConsumeIntegral() % MAX_PERMISSION_SIZE; std::vector permissionList; - for (int i = 0; i < permSize; i++) { - permissionList.emplace_back(fuzzData.GenerateStochasticString()); + for (int32_t i = 0; i < permSize; i++) { + permissionList.emplace_back(provider.ConsumeRandomLengthString()); } MessageParcel datas; datas.WriteInterfaceToken(IAccessTokenManager::GetDescriptor()); diff --git a/test/fuzztest/services/privacy/addpermissionusedrecordasyncstub_fuzzer/addpermissionusedrecordasyncstub_fuzzer.cpp b/test/fuzztest/services/privacy/addpermissionusedrecordasyncstub_fuzzer/addpermissionusedrecordasyncstub_fuzzer.cpp index 9e570a493..794b360c7 100644 --- a/test/fuzztest/services/privacy/addpermissionusedrecordasyncstub_fuzzer/addpermissionusedrecordasyncstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/addpermissionusedrecordasyncstub_fuzzer/addpermissionusedrecordasyncstub_fuzzer.cpp @@ -19,8 +19,8 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "privacy_manager_service.h" @@ -34,16 +34,19 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); MessageParcel datas; datas.WriteInterfaceToken(IPrivacyManager::GetDescriptor()); AddPermParamInfoParcel infoParcel; - infoParcel.info.tokenId = static_cast(fuzzData.GetData()); - infoParcel.info.permissionName = fuzzData.GenerateStochasticString(); - infoParcel.info.successCount = fuzzData.GetData(); - infoParcel.info.failCount = fuzzData.GetData(); + infoParcel.info.tokenId = provider.ConsumeIntegral(); + infoParcel.info.permissionName = provider.ConsumeRandomLengthString(); + infoParcel.info.successCount = provider.ConsumeIntegral(); + infoParcel.info.failCount = provider.ConsumeIntegral(); + infoParcel.info.type = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionUsedType::PERM_USED_TYPE_BUTT))); + if (!datas.WriteParcelable(&infoParcel)) { return false; } diff --git a/test/fuzztest/services/privacy/addpermissionusedrecordstub_fuzzer/addpermissionusedrecordstub_fuzzer.cpp b/test/fuzztest/services/privacy/addpermissionusedrecordstub_fuzzer/addpermissionusedrecordstub_fuzzer.cpp index 046452e7e..42f424e14 100644 --- a/test/fuzztest/services/privacy/addpermissionusedrecordstub_fuzzer/addpermissionusedrecordstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/addpermissionusedrecordstub_fuzzer/addpermissionusedrecordstub_fuzzer.cpp @@ -19,8 +19,8 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "privacy_manager_service.h" @@ -34,16 +34,18 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); MessageParcel datas; datas.WriteInterfaceToken(IPrivacyManager::GetDescriptor()); AddPermParamInfoParcel infoParcel; - infoParcel.info.tokenId = static_cast(fuzzData.GetData()); - infoParcel.info.permissionName = fuzzData.GenerateStochasticString(); - infoParcel.info.successCount = fuzzData.GetData(); - infoParcel.info.failCount = fuzzData.GetData(); + infoParcel.info.tokenId = provider.ConsumeIntegral(); + infoParcel.info.permissionName = provider.ConsumeRandomLengthString(); + infoParcel.info.successCount = provider.ConsumeIntegral(); + infoParcel.info.failCount = provider.ConsumeIntegral(); + infoParcel.info.type = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionUsedType::PERM_USED_TYPE_BUTT))); if (!datas.WriteParcelable(&infoParcel)) { return false; } diff --git a/test/fuzztest/services/privacy/getpermissionusedrecordsasyncstub_fuzzer/getpermissionusedrecordsasyncstub_fuzzer.cpp b/test/fuzztest/services/privacy/getpermissionusedrecordsasyncstub_fuzzer/getpermissionusedrecordsasyncstub_fuzzer.cpp index f60eac396..0ab6b7e11 100644 --- a/test/fuzztest/services/privacy/getpermissionusedrecordsasyncstub_fuzzer/getpermissionusedrecordsasyncstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/getpermissionusedrecordsasyncstub_fuzzer/getpermissionusedrecordsasyncstub_fuzzer.cpp @@ -19,9 +19,9 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private #include "errors.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "on_permission_used_record_callback_stub.h" #include "permission_used_request.h" @@ -46,20 +46,17 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - - std::vector permissionList = {fuzzData.GenerateStochasticString()}; - + FuzzedDataProvider provider(data, size); PermissionUsedRequest request = { - .tokenId = static_cast(fuzzData.GetData()), - .isRemote = fuzzData.GenerateStochasticBool(), - .deviceId = fuzzData.GenerateStochasticString(), - .bundleName = fuzzData.GenerateStochasticString(), - .permissionList = permissionList, - .beginTimeMillis = fuzzData.GetData(), - .endTimeMillis = fuzzData.GetData(), - .flag = fuzzData.GenerateStochasticEnmu( - FLAG_PERMISSION_USAGE_SUMMARY_IN_APP_FOREGROUND) + .tokenId = provider.ConsumeIntegral(), + .isRemote = provider.ConsumeBool(), + .deviceId = provider.ConsumeRandomLengthString(), + .bundleName = provider.ConsumeRandomLengthString(), + .permissionList = {provider.ConsumeRandomLengthString()}, + .beginTimeMillis = provider.ConsumeIntegral(), + .endTimeMillis = provider.ConsumeIntegral(), + .flag = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionUsageFlag::FLAG_PERMISSION_USAGE_SUMMARY_IN_APP_FOREGROUND))), }; PermissionUsedRequestParcel requestParcel; requestParcel.request = request; diff --git a/test/fuzztest/services/privacy/getpermissionusedrecordsstub_fuzzer/getpermissionusedrecordsstub_fuzzer.cpp b/test/fuzztest/services/privacy/getpermissionusedrecordsstub_fuzzer/getpermissionusedrecordsstub_fuzzer.cpp index 74dfdf1d3..cd1ac4d96 100644 --- a/test/fuzztest/services/privacy/getpermissionusedrecordsstub_fuzzer/getpermissionusedrecordsstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/getpermissionusedrecordsstub_fuzzer/getpermissionusedrecordsstub_fuzzer.cpp @@ -19,8 +19,8 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "permission_used_request.h" #include "permission_used_request_parcel.h" @@ -36,20 +36,17 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - - std::vector permissionList = {fuzzData.GenerateStochasticString()}; - + FuzzedDataProvider provider(data, size); PermissionUsedRequest request = { - .tokenId = static_cast(fuzzData.GetData()), - .isRemote = fuzzData.GenerateStochasticBool(), - .deviceId = fuzzData.GenerateStochasticString(), - .bundleName = fuzzData.GenerateStochasticString(), - .permissionList = permissionList, - .beginTimeMillis = fuzzData.GetData(), - .endTimeMillis = fuzzData.GetData(), - .flag = fuzzData.GenerateStochasticEnmu( - FLAG_PERMISSION_USAGE_SUMMARY_IN_APP_FOREGROUND) + .tokenId = provider.ConsumeIntegral(), + .isRemote = provider.ConsumeBool(), + .deviceId = provider.ConsumeRandomLengthString(), + .bundleName = provider.ConsumeRandomLengthString(), + .permissionList = {provider.ConsumeRandomLengthString()}, + .beginTimeMillis = provider.ConsumeIntegral(), + .endTimeMillis = provider.ConsumeIntegral(), + .flag = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionUsageFlag::FLAG_PERMISSION_USAGE_SUMMARY_IN_APP_FOREGROUND))), }; PermissionUsedRequestParcel requestParcel; requestParcel.request = request; diff --git a/test/fuzztest/services/privacy/getpermissionusedrecordtogglestatusstub_fuzzer/getpermissionusedrecordtogglestatusstub_fuzzer.cpp b/test/fuzztest/services/privacy/getpermissionusedrecordtogglestatusstub_fuzzer/getpermissionusedrecordtogglestatusstub_fuzzer.cpp index bd2846939..c60b4dce6 100644 --- a/test/fuzztest/services/privacy/getpermissionusedrecordtogglestatusstub_fuzzer/getpermissionusedrecordtogglestatusstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/getpermissionusedrecordtogglestatusstub_fuzzer/getpermissionusedrecordtogglestatusstub_fuzzer.cpp @@ -15,8 +15,8 @@ #include "getpermissionusedrecordtogglestatusstub_fuzzer.h" -#include "accesstoken_fuzzdata.h" #undef private +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "privacy_manager_service.h" @@ -32,12 +32,12 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); MessageParcel datas; datas.WriteInterfaceToken(IPrivacyManager::GetDescriptor()); - int32_t userID = fuzzData.GetData(); + int32_t userID = provider.ConsumeIntegral(); if (!datas.WriteInt32(userID)) { return false; } diff --git a/test/fuzztest/services/privacy/getpermissionusedtypeinfosstub_fuzzer/getpermissionusedtypeinfosstub_fuzzer.cpp b/test/fuzztest/services/privacy/getpermissionusedtypeinfosstub_fuzzer/getpermissionusedtypeinfosstub_fuzzer.cpp index c243b50d4..6e80274e1 100644 --- a/test/fuzztest/services/privacy/getpermissionusedtypeinfosstub_fuzzer/getpermissionusedtypeinfosstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/getpermissionusedtypeinfosstub_fuzzer/getpermissionusedtypeinfosstub_fuzzer.cpp @@ -19,8 +19,8 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "privacy_manager_service.h" @@ -34,14 +34,14 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); MessageParcel datas; datas.WriteInterfaceToken(IPrivacyManager::GetDescriptor()); - if (!datas.WriteUint32(static_cast(fuzzData.GetData()))) { + if (!datas.WriteUint32(provider.ConsumeIntegral())) { return false; } - if (!datas.WriteString(fuzzData.GenerateStochasticString())) { + if (!datas.WriteString(provider.ConsumeRandomLengthString())) { return false; } diff --git a/test/fuzztest/services/privacy/isallowedusingpermissionstub_fuzzer/isallowedusingpermissionstub_fuzzer.cpp b/test/fuzztest/services/privacy/isallowedusingpermissionstub_fuzzer/isallowedusingpermissionstub_fuzzer.cpp index e26b26f1b..39a569879 100644 --- a/test/fuzztest/services/privacy/isallowedusingpermissionstub_fuzzer/isallowedusingpermissionstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/isallowedusingpermissionstub_fuzzer/isallowedusingpermissionstub_fuzzer.cpp @@ -19,8 +19,8 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "privacy_manager_service.h" @@ -34,17 +34,17 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); MessageParcel datas; datas.WriteInterfaceToken(IPrivacyManager::GetDescriptor()); - if (!datas.WriteUint32(static_cast(fuzzData.GetData()))) { + if (!datas.WriteUint32(provider.ConsumeIntegral())) { return false; } - if (!datas.WriteString(fuzzData.GenerateStochasticString())) { + if (!datas.WriteString(provider.ConsumeRandomLengthString())) { return false; } - if (!datas.WriteInt32(fuzzData.GetData())) { + if (!datas.WriteInt32(provider.ConsumeIntegral())) { return false; } diff --git a/test/fuzztest/services/privacy/registerpermactivestatuscallbackstub_fuzzer/registerpermactivestatuscallbackstub_fuzzer.cpp b/test/fuzztest/services/privacy/registerpermactivestatuscallbackstub_fuzzer/registerpermactivestatuscallbackstub_fuzzer.cpp index 7ae82265a..09ee03fb6 100644 --- a/test/fuzztest/services/privacy/registerpermactivestatuscallbackstub_fuzzer/registerpermactivestatuscallbackstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/registerpermactivestatuscallbackstub_fuzzer/registerpermactivestatuscallbackstub_fuzzer.cpp @@ -19,8 +19,8 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "perm_active_status_change_callback.h" #include "perm_active_status_customized_cbk.h" @@ -54,9 +54,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); - std::vector permList = {fuzzData.GenerateStochasticString()}; + std::vector permList = {provider.ConsumeRandomLengthString()}; auto callback = std::make_shared(permList); callback->type_ = PERM_INACTIVE; sptr callbackWrap = nullptr; @@ -64,10 +64,10 @@ namespace OHOS { MessageParcel datas; datas.WriteInterfaceToken(IPrivacyManager::GetDescriptor()); - if (!datas.WriteString(permList[0])) { + if (!datas.WriteInt32(permList.size())) { return false; } - if (!datas.WriteInt32(permList.size())) { + if (!datas.WriteString(permList[0])) { return false; } if (!datas.WriteRemoteObject(callbackWrap->AsObject())) { diff --git a/test/fuzztest/services/privacy/removepermissionusedrecordsstub_fuzzer/removepermissionusedrecordsstub_fuzzer.cpp b/test/fuzztest/services/privacy/removepermissionusedrecordsstub_fuzzer/removepermissionusedrecordsstub_fuzzer.cpp index 67d6b8546..2eb66bfbb 100644 --- a/test/fuzztest/services/privacy/removepermissionusedrecordsstub_fuzzer/removepermissionusedrecordsstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/removepermissionusedrecordsstub_fuzzer/removepermissionusedrecordsstub_fuzzer.cpp @@ -19,8 +19,8 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "privacy_manager_service.h" @@ -34,14 +34,14 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); MessageParcel datas; datas.WriteInterfaceToken(IPrivacyManager::GetDescriptor()); - if (!datas.WriteUint32(static_cast(fuzzData.GetData()))) { + if (!datas.WriteUint32(provider.ConsumeIntegral())) { return false; } - if (!datas.WriteString(fuzzData.GenerateStochasticString())) { + if (!datas.WriteString(provider.ConsumeRandomLengthString())) { return false; } diff --git a/test/fuzztest/services/privacy/sethapwithfgreminderstub_fuzzer/sethapwithfgreminderstub_fuzzer.cpp b/test/fuzztest/services/privacy/sethapwithfgreminderstub_fuzzer/sethapwithfgreminderstub_fuzzer.cpp index c78cdd96f..87af0e03a 100644 --- a/test/fuzztest/services/privacy/sethapwithfgreminderstub_fuzzer/sethapwithfgreminderstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/sethapwithfgreminderstub_fuzzer/sethapwithfgreminderstub_fuzzer.cpp @@ -19,9 +19,9 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "privacy_manager_service.h" #include "nativetoken_kit.h" @@ -65,19 +65,20 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } + + FuzzedDataProvider provider(data, size); GetNativeToken(); - AccessTokenFuzzData fuzzData(data, size); if (size > sizeof(uint32_t) + sizeof(bool)) { - uint32_t tokenId = fuzzData.GetData(); - bool isAllowed = fuzzData.GenerateStochasticBool(); + AccessTokenID tokenId = provider.ConsumeIntegral(); + bool isAllowed = provider.ConsumeBool(); MessageParcel datas; datas.WriteInterfaceToken(IPrivacyManager::GetDescriptor()); if (!datas.WriteUint32(tokenId)) { return false; } - if (!datas.WriteBool(isAllowed)) { + if (!datas.WriteInt32(isAllowed ? 1 : 0)) { return false; } diff --git a/test/fuzztest/services/privacy/setmutepolicystub_fuzzer/setmutepolicystub_fuzzer.cpp b/test/fuzztest/services/privacy/setmutepolicystub_fuzzer/setmutepolicystub_fuzzer.cpp index ebf55518b..5b7274e6f 100644 --- a/test/fuzztest/services/privacy/setmutepolicystub_fuzzer/setmutepolicystub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/setmutepolicystub_fuzzer/setmutepolicystub_fuzzer.cpp @@ -19,9 +19,9 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "privacy_manager_service.h" #include "nativetoken_kit.h" @@ -68,14 +68,15 @@ size_t g_baseFuzzPos = 0; if ((data == nullptr) || (size == 0)) { return false; } + + FuzzedDataProvider provider(data, size); GetNativeToken(); - AccessTokenFuzzData fuzzData(data, size); if (size > sizeof(uint32_t) + sizeof(bool) + sizeof(uint32_t)) { - uint32_t policyType = fuzzData.GetData(); - uint32_t callerType = fuzzData.GetData(); - bool isMute = fuzzData.GenerateStochasticBool(); - uint32_t tokenID = fuzzData.GetData(); + uint32_t policyType = provider.ConsumeIntegral(); + uint32_t callerType = provider.ConsumeIntegral(); + bool isMute = provider.ConsumeBool(); + uint32_t tokenID = provider.ConsumeIntegral(); MessageParcel datas; datas.WriteInterfaceToken(IPrivacyManager::GetDescriptor()); @@ -85,7 +86,7 @@ size_t g_baseFuzzPos = 0; if (!datas.WriteUint32(callerType)) { return false; } - if (!datas.WriteBool(isMute)) { + if (!datas.WriteInt32(isMute ? 1 : 0)) { return false; } if (!datas.WriteUint32(tokenID)) { diff --git a/test/fuzztest/services/privacy/setpermissionusedrecordtogglestatusstub_fuzzer/setpermissionusedrecordtogglestatusstub_fuzzer.cpp b/test/fuzztest/services/privacy/setpermissionusedrecordtogglestatusstub_fuzzer/setpermissionusedrecordtogglestatusstub_fuzzer.cpp index 25292163b..d9c7f9c90 100644 --- a/test/fuzztest/services/privacy/setpermissionusedrecordtogglestatusstub_fuzzer/setpermissionusedrecordtogglestatusstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/setpermissionusedrecordtogglestatusstub_fuzzer/setpermissionusedrecordtogglestatusstub_fuzzer.cpp @@ -15,8 +15,8 @@ #include "setpermissionusedrecordtogglestatusstub_fuzzer.h" -#include "accesstoken_fuzzdata.h" #undef private +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "privacy_manager_service.h" @@ -32,14 +32,14 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); MessageParcel datas; datas.WriteInterfaceToken(IPrivacyManager::GetDescriptor()); - int32_t userID = fuzzData.GetData(); - bool status = fuzzData.GenerateStochasticBool(); - if (!datas.WriteInt32(userID) || !datas.WriteBool(status)) { + int32_t userID = provider.ConsumeIntegral(); + bool status = provider.ConsumeBool(); + if (!datas.WriteInt32(userID) || !datas.WriteInt32(status ? 1 : 0)) { return false; } diff --git a/test/fuzztest/services/privacy/startusingpermissioncallbackstub_fuzzer/startusingpermissioncallbackstub_fuzzer.cpp b/test/fuzztest/services/privacy/startusingpermissioncallbackstub_fuzzer/startusingpermissioncallbackstub_fuzzer.cpp index 66b6c2c71..936bc0aad 100644 --- a/test/fuzztest/services/privacy/startusingpermissioncallbackstub_fuzzer/startusingpermissioncallbackstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/startusingpermissioncallbackstub_fuzzer/startusingpermissioncallbackstub_fuzzer.cpp @@ -19,8 +19,8 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "state_change_callback.h" #include "state_customized_cbk.h" @@ -53,7 +53,7 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); sptr callbackWrap = nullptr; auto callback = std::make_shared(); @@ -61,13 +61,18 @@ namespace OHOS { MessageParcel datas; datas.WriteInterfaceToken(IPrivacyManager::GetDescriptor()); - if (!datas.WriteUint32(static_cast(fuzzData.GetData()))) { + if (!datas.WriteUint32(provider.ConsumeIntegral())) { return false; } - if (!datas.WriteInt32(fuzzData.GetData())) { + if (!datas.WriteString(provider.ConsumeRandomLengthString())) { return false; } - if (!datas.WriteString(fuzzData.GenerateStochasticString())) { + if (!datas.WriteInt32(provider.ConsumeIntegral())) { + return false; + } + uint32_t type = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionUsedType::PERM_USED_TYPE_BUTT))); + if (!datas.WriteUint32(type)) { return false; } if (!datas.WriteRemoteObject(callbackWrap->AsObject())) { diff --git a/test/fuzztest/services/privacy/startusingpermissionstub_fuzzer/startusingpermissionstub_fuzzer.cpp b/test/fuzztest/services/privacy/startusingpermissionstub_fuzzer/startusingpermissionstub_fuzzer.cpp index 42181dd68..2e09748d1 100644 --- a/test/fuzztest/services/privacy/startusingpermissionstub_fuzzer/startusingpermissionstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/startusingpermissionstub_fuzzer/startusingpermissionstub_fuzzer.cpp @@ -19,8 +19,8 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "privacy_manager_service.h" @@ -34,17 +34,17 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); MessageParcel datas; datas.WriteInterfaceToken(IPrivacyManager::GetDescriptor()); - if (!datas.WriteUint32(static_cast(fuzzData.GetData()))) { + if (!datas.WriteUint32(provider.ConsumeIntegral())) { return false; } - if (!datas.WriteInt32(fuzzData.GetData())) { + if (!datas.WriteString(provider.ConsumeRandomLengthString())) { return false; } - if (!datas.WriteString(fuzzData.GenerateStochasticString())) { + if (!datas.WriteInt32(provider.ConsumeIntegral())) { return false; } diff --git a/test/fuzztest/services/privacy/stopusingpermissionstub_fuzzer/stopusingpermissionstub_fuzzer.cpp b/test/fuzztest/services/privacy/stopusingpermissionstub_fuzzer/stopusingpermissionstub_fuzzer.cpp index 74183f9e3..7967d5252 100644 --- a/test/fuzztest/services/privacy/stopusingpermissionstub_fuzzer/stopusingpermissionstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/stopusingpermissionstub_fuzzer/stopusingpermissionstub_fuzzer.cpp @@ -19,8 +19,8 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "privacy_manager_service.h" @@ -34,17 +34,17 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); MessageParcel datas; datas.WriteInterfaceToken(IPrivacyManager::GetDescriptor()); - if (!datas.WriteUint32(static_cast(fuzzData.GetData()))) { + if (!datas.WriteUint32(provider.ConsumeIntegral())) { return false; } - if (!datas.WriteInt32(fuzzData.GetData())) { + if (!datas.WriteString(provider.ConsumeRandomLengthString())) { return false; } - if (!datas.WriteString(fuzzData.GenerateStochasticString())) { + if (!datas.WriteInt32(provider.ConsumeIntegral())) { return false; } diff --git a/test/fuzztest/services/privacy/unregisterpermactivestatuscallbackstub_fuzzer/unregisterpermactivestatuscallbackstub_fuzzer.cpp b/test/fuzztest/services/privacy/unregisterpermactivestatuscallbackstub_fuzzer/unregisterpermactivestatuscallbackstub_fuzzer.cpp index 6e08e8862..a86e9062d 100644 --- a/test/fuzztest/services/privacy/unregisterpermactivestatuscallbackstub_fuzzer/unregisterpermactivestatuscallbackstub_fuzzer.cpp +++ b/test/fuzztest/services/privacy/unregisterpermactivestatuscallbackstub_fuzzer/unregisterpermactivestatuscallbackstub_fuzzer.cpp @@ -19,8 +19,8 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private +#include "fuzzer/FuzzedDataProvider.h" #include "iprivacy_manager.h" #include "perm_active_status_change_callback.h" #include "perm_active_status_customized_cbk.h" @@ -54,12 +54,12 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); MessageParcel datas; datas.WriteInterfaceToken(IPrivacyManager::GetDescriptor()); - std::vector permList = {fuzzData.GenerateStochasticString()}; + std::vector permList = {provider.ConsumeRandomLengthString()}; auto callback = std::make_shared(permList); callback->type_ = PERM_INACTIVE; -- Gitee