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 c8db10bba280ee91ae05e9a70f9ffb557ad5a25d..4e456938e1e8cb0624948de5fc84c869c1191153 100644 --- a/test/fuzztest/normalize_service/accesstoken/allochaptokenservice_fuzzer/allochaptokenservice_fuzzer.cpp +++ b/test/fuzztest/normalize_service/accesstoken/allochaptokenservice_fuzzer/allochaptokenservice_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" @@ -30,63 +31,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 +103,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 cf4ae391d8437f330de19e22431ea1e111216e8e..3ed6c368cf8c873d8d1cd3397dede46bad1ea026 100644 --- a/test/fuzztest/normalize_service/accesstoken/gethaptokenidservice_fuzzer/gethaptokenidservice_fuzzer.cpp +++ b/test/fuzztest/normalize_service/accesstoken/gethaptokenidservice_fuzzer/gethaptokenidservice_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,10 +38,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); + int userID = provider.ConsumeIntegral(); + std::string bundleName = provider.ConsumeRandomLengthString(); + int 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 10c79e3a8aaa9d0332aa023db7a52c84ed77a378..024fc8aa7d5bc16e40fe3448d7538f6c7378ad50 100644 --- a/test/fuzztest/normalize_service/accesstoken/gethaptokeninfoservice_fuzzer/gethaptokeninfoservice_fuzzer.cpp +++ b/test/fuzztest/normalize_service/accesstoken/gethaptokeninfoservice_fuzzer/gethaptokeninfoservice_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" @@ -38,9 +39,10 @@ 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 c171f5b5ba75ded63b1ac6e3732dcb084b8788dd..049f197f884f6d5b473142c9b4291058df18ec24 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 fe3b247bf0a540d737ff7f0a0f7feb3dda8b1e06..235ac7e3a6769b93425b19323caff07f26b8ca3c 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 cfe7bdcf425f104e6adda49b31cdf8da3f63089a..f0176436ba9316bab3f35d6e0af53db9fa5e03e1 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 42d0d9a3de66bbe1e27d812ba05c339b11744fe6..c618c0c8d2e3d68ad04b91a227d7307ff00ace7f 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 eb3dd725968f780bc9f1f40214031128c1967d42..e9848c756b602baa5dba4fefa1ea8b2442138950 100644 --- a/test/fuzztest/normalize_service/accesstoken/inithaptokenservice_fuzzer/inithaptokenservice_fuzzer.cpp +++ b/test/fuzztest/normalize_service/accesstoken/inithaptokenservice_fuzzer/inithaptokenservice_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" @@ -30,63 +31,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 +103,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 775e08ab6eef08b951907654166223c34c597c17..22102a3831c11cb36a509ef9bc5846d006536b39 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 0125f79fb1d158a15da7929bc589f23abbb4f50e..5e5840f97effbec9ca4bd2b843eb415b4d09c489 100644 --- a/test/fuzztest/services/accesstoken/allochaptokenstub_fuzzer/allochaptokenstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/allochaptokenstub_fuzzer/allochaptokenstub_fuzzer.cpp @@ -14,15 +14,17 @@ */ #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 +34,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 +104,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 79e4f2c43b9424d965a4d07ac95dc9167365a4b9..8039d723265ee111d66f7ba5ed78faad23da4e04 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 6d0865fe8d009e5896b11b9a8a8a706c9898094f..32492574a1a7d4753e2acd110ebede4bd265e3d1 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 f224bf4c52e35d319da74c0925a5cc14fcec563a..b7adfc1a9cc561e81db61fe9c01b894588e11ca0 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 507aed4f85d7c81e249d9e1f01ed7a4f776eecda..59b671366d4021c5cfe1a3bd01517e55cea0b19b 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 99f54ca3d30f926970dc7be408acbd22ef2c97af..ebb06b76bcc86b58b5a5a4161e0ec83586b4eae3 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 80d797a4f5d812ec739de3cf54d8769e99e42d0b..faea9dcf88ace7734fcdbd24ae87c77cd4e4755f 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 03ff2eaa46c4fb2931c7ed70d7901fc96cb9d92c..e29b4ac343a2964d92acac454c85e2cf97437d9f 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 5380cc4c5da601b0886666c6cd36a0a678b7137b..0c4e671c55eaf4b639f43f6e3085e8d97bd3695b 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,9 @@ 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 +44,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 5be9fb45eb812b030d74eca9c080bcc1f990f25f..80a4152eb1e60f6a47d23af632953aa501099267 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 39c8c5fff819fd9dc0cd8ea975b1f7438617f099..137dcbcf906e2ac1aa4d76f1fe4676a45060641f 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 7b0570a6901068fe435bd859621b44eb9499289c..c0a79f4a8b1bfc1ca7fd11f375b4adb699756dc8 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 9f05b60603508a28f111a8855b40febcb3687e85..032e87cff1a435ccdd7f5cd95220e06d15af386c 100644 --- a/test/fuzztest/services/accesstoken/gethaptokeninfostub_fuzzer/gethaptokeninfostub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/gethaptokeninfostub_fuzzer/gethaptokeninfostub_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,8 +39,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/getkernelpermissionsstub_fuzzer/getkernelpermissionsstub_fuzzer.cpp b/test/fuzztest/services/accesstoken/getkernelpermissionsstub_fuzzer/getkernelpermissionsstub_fuzzer.cpp index 06c8c603e96ab9c543c37e2dc3260192a545d3a7..0aedbb44bd48c2adb6565ab6ec81837b83d04fb9 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 96f13c6c98d1c6bb558712b1f20d18bbff36bca5..1f624fe38759d8c3ea47b4de05c264c0e151bed6 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 505057e1ef907c8d37a4fc79e1d7f7161622fe55..2ff9c9ad2791996869cceffc78e0fbf88890cbf7 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 cc4c7fc5d5da05821fa79fd6a78f9a7e3c94ab9b..614ce18ce16ab043d9778da0ff17ec8ca8590ef2 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 10b12bce5775971c4fbd0df8a6b22830a3e5ea38..6ca346a06f3e1d072e36acc56c6db978a0e2392c 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 f06378e581c4f342b8342ef6de448f405583355c..1b19b8a35e57a6a444d0ee74f213591d153c7fd5 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 46d92628166cf29214d58e045bfbcde4db83df14..4cc98a0b195952b7f4d606a9565390c586ad2f02 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 1024f2c8595141e26a9511e5503d560b1886ff9f..1c39a066fa9e91e8eadda95db94ca58edd4495e2 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 c752771ea3ba168fda6d7a3b84bd90a190bf250c..3c607f10a8401a3646021a1eb3e5b9f15a268789 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 e0da7247cd64e5f9aefed9d2a4fc1503364a3eb0..e1a82def80b7c36ae21cbbf863a80f07a21e3c10 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 022a9113e235f1d04c2e222f21709d0f5ae18538..68722a9542554f4390decb64bafdf0c8cf14c571 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 90b41c25de2acfd6a33b13a859068f69e07f471f..726f7a3278c0cd69883e307c0157190a8255e6b4 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 a767372a2dfd8e5786c1c22e4795dc347b1e2321..211bd26b0f3e6377b548fd32fd2e031a4029da22 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 5587af8d23d54c7b71713a0063e57672b8ceb941..6de8ea9770310c747146e082be2d5e4300fcc381 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 a3b3cc411f9d3d21e72f872acd3f080d355c8f70..6d2678cfe36e72d02450b647bc057b2338f3f93a 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 7a21b62ddb31286f56d9e16be5defb2455b2d7df..3c9a47a65136a4b39f8bad6952068bef8f2bb01c 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 538cb8efc1566f540c87016d859745e7bf0df8a9..d9f5580a956e3983abff1012e8dff7778c3cb514 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 2985e0195eff9ef99d5b700881329c1d25ac9ad9..b76a4f277db56b7c102e2e8b7e95e4c7c2da9c7d 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 ea023f93c3739ba0fdfd31329b32cebbf683f643..ebe60a4ac5909db2278f8171805ff0f8cf20c784 100644 --- a/test/fuzztest/services/accesstoken/inithaptokenstub_fuzzer/inithaptokenstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/inithaptokenstub_fuzzer/inithaptokenstub_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" @@ -32,44 +33,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 +103,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 9d2a9b91ded1c28d7cf72769514f49eef9c75f07..51d8187631f2502fa7caf56131cb71beb8ccb21b 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 0bbce87b597de8a8cc4bc0408791927bbeda674c..aaafac5b89dd37cbc810e0c232fc79c065dd0f0c 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 84cedc88516dc408aa6bbba7701a44012b509509..ac2884f322182f5fef71446818fe495625e46140 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 b1d6293f0f77276c0f71555dfea4d7ae9f88b3aa..6de50c66129c40d6d9fc206736576ae6ef34c06c 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 bcd22753e8ff3743bb80bd3cb1f97a66ee4eb6f5..9589180193e8d4d5c2c7d03e00245fead54ce367 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 30d69e7df101d4003741b160ad494bdb20cfc6e6..c344df43976955614969190a97a21cb790e462d5 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 0f5a1cb727969dcc49e40ce91dfe9670b34711d2..0cdebca5398e08e3a24bc633d678be6b66df5bc3 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 ba4ad29f9d6eef58dc4250989dbc7b16d0cb8ca8..478721e78e873acced7ee142dfe5bf0183969b51 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 7e98d58607a4accec0b6e026b687f7b7eb61db49..5125344a3e73356d7eff2f016a6fb72578056452 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 4f3329119822054807e62610b6fac592b4ece109..e9051f49a4af7443e7a3923f6a18b778c52c79d2 100644 --- a/test/fuzztest/services/accesstoken/setremotehaptokeninfostub_fuzzer/setremotehaptokeninfostub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/setremotehaptokeninfostub_fuzzer/setremotehaptokeninfostub_fuzzer.cpp @@ -18,12 +18,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 "permission_state_full.h" #include "token_setproc.h" @@ -36,51 +37,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 e9763360a32ce92624f6fa8f7668297115e2ad37..5011a9f26212a8f8591b5ecedf43482f19a3c49e 100644 --- a/test/fuzztest/services/accesstoken/updatehaptokenstub_fuzzer/updatehaptokenstub_fuzzer.cpp +++ b/test/fuzztest/services/accesstoken/updatehaptokenstub_fuzzer/updatehaptokenstub_fuzzer.cpp @@ -22,8 +22,9 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #include "service/accesstoken_manager_service.h" using namespace std; @@ -32,49 +33,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 c8ecc626e985a5327a6617e7f60fee7f0abf19e1..3c588fde16e71b67d0efa80578b6d02515475baa 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 bfc6d562603751cb9e984d3b5d4ef83084482714..0dbec3788f943c807f8a06f6760962832deaff03 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 7575cc2379930bcbd49c8d2db6a50399e43ad62c..c8a1063ff6bab991765afb2f3eb927c83af0d97b 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 b6ddf690259bd902f4e45b7c2fcac9ab8fb4cedb..0c7351ac96169c1ccd904bdfcdd3aa01f26de1cc 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 9e570a49380442b874f87566942df81c0639b90a..794b360c733cf75eaf12c279534393031f94c587 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 046452e7e76612a832c3466689fd5f5a98b889dc..42f424e14885b1f42d79a4b1f5f06cb944b2e410 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 f60eac396f03c1838290e08572948a943e988d81..0ab6b7e1142724f5d9df6887dad8f39ac1f89f70 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 74dfdf1d30c90ea943973861a8f832717e718271..cd1ac4d965cd77c5d6f72e695e6ca9e91e897b43 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 bd2846939ea65dc229e52c444162d9d0be845984..c60b4dce67c377402d148c14e81c436ffc51f942 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 c243b50d461326ebff9464fcf1d3d6e608cbbeb2..6e80274e1bef35f4d52129b107497f448c5d21f3 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 e26b26f1bffd070d2071dbc309ffb6b44fed2828..39a56987903b1272a380076eeaed0fcec578e005 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 7ae82265a97b2f3d398fb38299921bbacaa474e9..09ee03fb6be914cbfad9be3232121acba815e530 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 67d6b854659320481a6173bea4c8f044df0e669a..2eb66bfbba5cbe5f5d368aedd2799ff6408bd0db 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 c78cdd96fcfb3dbb3d0adadb9f3a026b8fd358da..87af0e03a58969d85076cbb8e104638e92493068 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 ebf55518bb0810dc818d26b3b3316160189a7c7e..5b7274e6f3896285bbf863a078bec3679d38ff0d 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 25292163bca26377af5ace327a900f5c50ab200c..d9c7f9c902ab003b306cbe7536cbf8477fa6ee25 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 66b6c2c7142d5e379d6cf60ebb0b4c8cd954a60b..936bc0aada5d5f7fb2f016cee53c701fb8096429 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 42181dd68987bc3be6d1fecc402ffff67a558f47..2e09748d1810c9e59f36f06ffa893c1f97d67dfe 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 74183f9e319990ea2c86cd4b51984696a65b3f03..7967d5252964fee9a5965c981cd2b3065a73fbcd 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 6e08e88623ae7676e5189048d04c0f11ed5b57fe..a86e9062d8785290bcd480e47232e72b06ab0382 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;