From eea0fb699affc8c69334bd9eed9593fcdbd74d06 Mon Sep 17 00:00:00 2001 From: zhouyan Date: Tue, 24 Jun 2025 20:15:55 +0800 Subject: [PATCH] =?UTF-8?q?fuzz=E7=94=A8=E4=BE=8B=E6=95=B4=E6=94=B9-innerk?= =?UTF-8?q?its?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhouyan Change-Id: If4726cf6829476efd6bf96ff2cceeb67c95ecb2d --- .../allochaptoken_fuzzer.cpp | 118 ++++++++++++------ .../alloclocaltokenid_fuzzer.cpp | 12 +- ...clearusergrantedpermissionstate_fuzzer.cpp | 10 +- .../deleteremotedevicetokens_fuzzer.cpp | 11 +- .../deleteremotetoken_fuzzer.cpp | 12 +- .../deletetoken_fuzzer/deletetoken_fuzzer.cpp | 9 +- .../dumptokeninfo_fuzzer.cpp | 14 +-- .../getdefpermission_fuzzer.cpp | 11 +- .../gethapdlpflag_fuzzer.cpp | 9 +- .../gethaptokenid_fuzzer.cpp | 11 +- .../gethaptokeninfo_fuzzer.cpp | 11 +- .../gethaptokeninfofromremote_fuzzer.cpp | 12 +- .../getnativetokenid_fuzzer.cpp | 10 +- .../getnativetokeninfo_fuzzer.cpp | 11 +- .../getpermissionflags_fuzzer.cpp | 13 +- ...etpermissionrequesttogglestatus_fuzzer.cpp | 13 +- .../getpermissionsstatus_fuzzer.cpp | 83 +----------- .../getpermissionusedtype_fuzzer.cpp | 10 +- .../getremotenativetokenid_fuzzer.cpp | 14 +-- .../getrendertokenid_fuzzer.cpp | 13 +- .../getreqpermissions_fuzzer.cpp | 12 +- .../getseccompenhance_fuzzer.cpp | 7 +- .../getselfpermissionsstate_fuzzer.cpp | 20 +-- .../getselfpermissionstatus_fuzzer.cpp | 10 +- .../gettokenidbyuserid_fuzzer.cpp | 9 +- .../gettokentype_fuzzer.cpp | 11 +- .../gettokentypeflag_fuzzer.cpp | 10 +- .../grantpermission_fuzzer.cpp | 11 +- ...grantpermissionforspecifiedtime_fuzzer.cpp | 15 ++- .../inithaptoken_fuzzer.cpp | 118 ++++++++++++------ .../inituserpolicy_fuzzer.cpp | 11 +- .../istoastshownneeded_fuzzer.cpp | 7 +- ...registerpermstatechangecallback_fuzzer.cpp | 9 +- .../registerseccompenhance_fuzzer.cpp | 15 ++- .../requestapppermonsetting_fuzzer.cpp | 7 +- .../revokeusergrantedpermission_fuzzer.cpp | 13 +- .../setpermdialogcap_fuzzer.cpp | 16 +-- ...etpermissionrequesttogglestatus_fuzzer.cpp | 11 +- .../setremotehaptokeninfo_fuzzer.cpp | 42 ++++--- ...registerpermstatechangecallback_fuzzer.cpp | 13 +- .../updatehaptoken_fuzzer.cpp | 98 ++++++++++----- .../updateseccompenhance_fuzzer.cpp | 8 +- .../verifyaccesstoken001_fuzzer.cpp | 12 +- .../verifyaccesstoken_fuzzer.cpp | 11 +- .../verifyaccesstokenwithlist_fuzzer.cpp | 20 ++- .../addpermissionusedrecord_fuzzer.cpp | 16 +-- .../addpermissionusedrecordasync_fuzzer.cpp | 21 ++-- .../getpermissionusedrecords_fuzzer.cpp | 24 ++-- ...ermissionusedrecordtogglestatus_fuzzer.cpp | 10 +- .../getpermissionusedtypeinfos_fuzzer.cpp | 9 +- .../isallowedusingpermission_fuzzer.cpp | 9 +- ...egisterpermactivestatuscallback_fuzzer.cpp | 7 +- .../removepermissionusedrecords_fuzzer.cpp | 7 +- .../setmutepolicy_fuzzer.cpp | 9 +- ...ermissionusedrecordtogglestatus_fuzzer.cpp | 10 +- .../startusingpermission001_fuzzer.cpp | 13 +- .../startusingpermission_fuzzer.cpp | 11 +- .../stopusingpermission_fuzzer.cpp | 9 +- ...egisterpermactivestatuscallback_fuzzer.cpp | 8 +- 59 files changed, 546 insertions(+), 540 deletions(-) diff --git a/test/fuzztest/innerkits/accesstoken/allochaptoken_fuzzer/allochaptoken_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/allochaptoken_fuzzer/allochaptoken_fuzzer.cpp index 5bcdf5a34..ee91ab3fb 100644 --- a/test/fuzztest/innerkits/accesstoken/allochaptoken_fuzzer/allochaptoken_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/allochaptoken_fuzzer/allochaptoken_fuzzer.cpp @@ -16,60 +16,104 @@ #include "allochaptoken_fuzzer.h" #include -#include #include +#include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; namespace OHOS { + void InitHapInfoParams(const std::string& bundleName, FuzzedDataProvider& provider, HapInfoParams ¶m) + { + 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& bundleName, const std::string& permissionName, FuzzedDataProvider& provider, + HapPolicyParams& policy) + { + PermissionDef def = { + .permissionName = permissionName, + .bundleName = bundleName, + .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(), + }; + + PermissionStateFull state = { + .permissionName = permissionName, + .isGeneral = provider.ConsumeBool(), + .resDeviceID = {provider.ConsumeRandomLengthString()}, + .grantStatus = {static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionState::PERMISSION_GRANTED)))}, + .grantFlags = {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 AllocHapTokenFuzzTest(const uint8_t* data, size_t size) { - AccessTokenIDEx tokenIdEx = {0}; if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - - std::string permissionName(fuzzData.GenerateStochasticString()); - std::string bundleName(fuzzData.GenerateStochasticString()); - PermissionDef testPermDef; - testPermDef.permissionName = permissionName; - testPermDef.bundleName = bundleName; - testPermDef.grantMode = 1; - testPermDef.availableLevel = APL_NORMAL; - testPermDef.label = fuzzData.GenerateStochasticString(); - testPermDef.labelId = 1; - testPermDef.description = fuzzData.GenerateStochasticString(); - testPermDef.descriptionId = 1; - - PermissionStateFull testState; - testState.permissionName = permissionName; - testState.isGeneral = true; - testState.resDeviceID = {fuzzData.GenerateStochasticString()}; - testState.grantStatus = {PermissionState::PERMISSION_GRANTED}; - testState.grantFlags = {1}; - HapInfoParams TestInfoParms = { - .userID = 1, - .bundleName = bundleName, - .instIndex = 0, - .appIDDesc = fuzzData.GenerateStochasticString() - }; - HapPolicyParams TestPolicyPrams = { - .apl = APL_NORMAL, - .domain = fuzzData.GenerateStochasticString(), - .permList = {testPermDef}, - .permStateList = {testState} - }; + FuzzedDataProvider provider(data, size); + std::string bundleName = provider.ConsumeRandomLengthString(); + std::string permissionName = provider.ConsumeRandomLengthString(); + + HapInfoParams param; + InitHapInfoParams(bundleName, provider, param); - tokenIdEx = AccessTokenKit::AllocHapToken(TestInfoParms, TestPolicyPrams); + HapPolicyParams policy; + InitHapPolicy(bundleName, permissionName, provider, policy); + + AccessTokenIDEx tokenIdEx = {0}; + tokenIdEx = AccessTokenKit::AllocHapToken(param, policy); - return tokenIdEx.tokenIdExStruct.tokenID != 0; + return tokenIdEx.tokenIdExStruct.tokenID != INVALID_TOKENID; } } diff --git a/test/fuzztest/innerkits/accesstoken/alloclocaltokenid_fuzzer/alloclocaltokenid_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/alloclocaltokenid_fuzzer/alloclocaltokenid_fuzzer.cpp index 6044b6613..d4412007f 100644 --- a/test/fuzztest/innerkits/accesstoken/alloclocaltokenid_fuzzer/alloclocaltokenid_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/alloclocaltokenid_fuzzer/alloclocaltokenid_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -28,16 +29,13 @@ using namespace OHOS::Security::AccessToken; namespace OHOS { bool AllocLocalTokenIDFuzzTest(const uint8_t* data, size_t size) { - AccessTokenID tokenId = 0; if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - - tokenId = AccessTokenKit::AllocLocalTokenID(fuzzData.GenerateStochasticString(), - fuzzData.GetData()); - return tokenId != 0; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::AllocLocalTokenID(provider.ConsumeRandomLengthString(), + provider.ConsumeIntegral()) != INVALID_TOKENID; } } diff --git a/test/fuzztest/innerkits/accesstoken/clearusergrantedpermissionstate_fuzzer/clearusergrantedpermissionstate_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/clearusergrantedpermissionstate_fuzzer/clearusergrantedpermissionstate_fuzzer.cpp index 41eb60a47..2d73c4635 100644 --- a/test/fuzztest/innerkits/accesstoken/clearusergrantedpermissionstate_fuzzer/clearusergrantedpermissionstate_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/clearusergrantedpermissionstate_fuzzer/clearusergrantedpermissionstate_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -32,10 +33,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - int32_t result = AccessTokenKit::ClearUserGrantedPermissionState(fuzzData.GetData()); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::ClearUserGrantedPermissionState( + provider.ConsumeIntegral()) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/deleteremotedevicetokens_fuzzer/deleteremotedevicetokens_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/deleteremotedevicetokens_fuzzer/deleteremotedevicetokens_fuzzer.cpp index 3b539d1b5..be7117bce 100644 --- a/test/fuzztest/innerkits/accesstoken/deleteremotedevicetokens_fuzzer/deleteremotedevicetokens_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/deleteremotedevicetokens_fuzzer/deleteremotedevicetokens_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -29,14 +30,13 @@ using namespace OHOS::Security::AccessToken; namespace OHOS { bool DeleteRemoteDeviceTokensFuzzTest(const uint8_t* data, size_t size) { -#ifdef TOKEN_SYNC_ENABLE if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - int32_t result = AccessTokenKit::DeleteRemoteDeviceTokens(fuzzData.GenerateStochasticString()); - return result == RET_SUCCESS; +#ifdef TOKEN_SYNC_ENABLE + FuzzedDataProvider provider(data, size); + return AccessTokenKit::DeleteRemoteDeviceTokens(provider.ConsumeRandomLengthString()) == RET_SUCCESS; #else return true; #endif @@ -47,7 +47,6 @@ namespace OHOS { extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { /* Run your code on data */ - OHOS::DeleteRemoteDeviceTokensFuzzTest(data, size); return 0; } diff --git a/test/fuzztest/innerkits/accesstoken/deleteremotetoken_fuzzer/deleteremotetoken_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/deleteremotetoken_fuzzer/deleteremotetoken_fuzzer.cpp index f56dda35a..955a23c36 100644 --- a/test/fuzztest/innerkits/accesstoken/deleteremotetoken_fuzzer/deleteremotetoken_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/deleteremotetoken_fuzzer/deleteremotetoken_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -28,15 +29,14 @@ using namespace OHOS::Security::AccessToken; namespace OHOS { bool DeleteRemoteTokenFuzzTest(const uint8_t* data, size_t size) { -#ifdef TOKEN_SYNC_ENABLE if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - int32_t result = AccessTokenKit::DeleteRemoteToken( - fuzzData.GenerateStochasticString(), fuzzData.GetData()); - return result == RET_SUCCESS; +#ifdef TOKEN_SYNC_ENABLE + FuzzedDataProvider provider(data, size); + return AccessTokenKit::DeleteRemoteToken(provider.ConsumeRandomLengthString(), + provider.ConsumeIntegral()) == RET_SUCCESS; #else return true; #endif diff --git a/test/fuzztest/innerkits/accesstoken/deletetoken_fuzzer/deletetoken_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/deletetoken_fuzzer/deletetoken_fuzzer.cpp index db97b50e0..ea8912ec6 100644 --- a/test/fuzztest/innerkits/accesstoken/deletetoken_fuzzer/deletetoken_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/deletetoken_fuzzer/deletetoken_fuzzer.cpp @@ -18,7 +18,8 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "accesstoken_kit.h" @@ -32,10 +33,8 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - int32_t result = AccessTokenKit::DeleteToken(fuzzData.GetData()); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::DeleteToken(provider.ConsumeIntegral()) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/dumptokeninfo_fuzzer/dumptokeninfo_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/dumptokeninfo_fuzzer/dumptokeninfo_fuzzer.cpp index 89728852a..9087de6ad 100644 --- a/test/fuzztest/innerkits/accesstoken/dumptokeninfo_fuzzer/dumptokeninfo_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/dumptokeninfo_fuzzer/dumptokeninfo_fuzzer.cpp @@ -19,9 +19,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -29,17 +30,16 @@ using namespace OHOS::Security::AccessToken; namespace OHOS { bool DumpTokenInfoFuzzTest(const uint8_t* data, size_t size) { - AccessTokenID tokenId = 0; if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - tokenId = fuzzData.GetData(); - std::string dumpInfo; - AtmToolsParamInfo info; - info.tokenId = tokenId; + FuzzedDataProvider provider(data, size); + AtmToolsParamInfo info = { + .tokenId = provider.ConsumeIntegral(), + }; + std::string dumpInfo; AccessTokenKit::DumpTokenInfo(info, dumpInfo); return true; diff --git a/test/fuzztest/innerkits/accesstoken/getdefpermission_fuzzer/getdefpermission_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/getdefpermission_fuzzer/getdefpermission_fuzzer.cpp index 5aa9066cb..2143937de 100644 --- a/test/fuzztest/innerkits/accesstoken/getdefpermission_fuzzer/getdefpermission_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/getdefpermission_fuzzer/getdefpermission_fuzzer.cpp @@ -18,7 +18,8 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "accesstoken_kit.h" #include "permission_def.h" @@ -34,11 +35,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - PermissionDef PERMISSIONDEF; - int32_t result = AccessTokenKit::GetDefPermission(fuzzData.GenerateStochasticString(), PERMISSIONDEF); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + PermissionDef def; + return AccessTokenKit::GetDefPermission(provider.ConsumeRandomLengthString(), def) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/gethapdlpflag_fuzzer/gethapdlpflag_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/gethapdlpflag_fuzzer/gethapdlpflag_fuzzer.cpp index e24e21bce..c92884205 100644 --- a/test/fuzztest/innerkits/accesstoken/gethapdlpflag_fuzzer/gethapdlpflag_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/gethapdlpflag_fuzzer/gethapdlpflag_fuzzer.cpp @@ -19,9 +19,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -33,10 +34,8 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - int32_t result = AccessTokenKit::GetHapDlpFlag(fuzzData.GetData()); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::GetHapDlpFlag(provider.ConsumeIntegral()) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/gethaptokenid_fuzzer/gethaptokenid_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/gethaptokenid_fuzzer/gethaptokenid_fuzzer.cpp index c94d55d23..e45747854 100644 --- a/test/fuzztest/innerkits/accesstoken/gethaptokenid_fuzzer/gethaptokenid_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/gethaptokenid_fuzzer/gethaptokenid_fuzzer.cpp @@ -17,8 +17,9 @@ #include #include -#include "accesstoken_fuzzdata.h" + #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -30,11 +31,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - int32_t result = AccessTokenKit::GetHapTokenID( - fuzzData.GetData(), fuzzData.GenerateStochasticString(), fuzzData.GetData()); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::GetHapTokenID(provider.ConsumeIntegral(), provider.ConsumeRandomLengthString(), + provider.ConsumeIntegral()) != INVALID_TOKENID; } } diff --git a/test/fuzztest/innerkits/accesstoken/gethaptokeninfo_fuzzer/gethaptokeninfo_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/gethaptokeninfo_fuzzer/gethaptokeninfo_fuzzer.cpp index d757344c3..eeb69cf34 100644 --- a/test/fuzztest/innerkits/accesstoken/gethaptokeninfo_fuzzer/gethaptokeninfo_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/gethaptokeninfo_fuzzer/gethaptokeninfo_fuzzer.cpp @@ -17,8 +17,9 @@ #include #include -#include "accesstoken_fuzzdata.h" + #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" #include "hap_token_info.h" using namespace OHOS::Security::AccessToken; @@ -30,11 +31,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - HapTokenInfo HapTokenInfotest; - int32_t result = AccessTokenKit::GetHapTokenInfo(fuzzData.GetData(), HapTokenInfotest); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + HapTokenInfo info; + return AccessTokenKit::GetHapTokenInfo(provider.ConsumeIntegral(), info) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/gethaptokeninfofromremote_fuzzer/gethaptokeninfofromremote_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/gethaptokeninfofromremote_fuzzer/gethaptokeninfofromremote_fuzzer.cpp index db26fdbd4..8c859aab0 100644 --- a/test/fuzztest/innerkits/accesstoken/gethaptokeninfofromremote_fuzzer/gethaptokeninfofromremote_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/gethaptokeninfofromremote_fuzzer/gethaptokeninfofromremote_fuzzer.cpp @@ -19,9 +19,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -29,16 +30,15 @@ using namespace OHOS::Security::AccessToken; namespace OHOS { bool GetHapTokenInfoFromRemoteFuzzTest(const uint8_t* data, size_t size) { -#ifdef TOKEN_SYNC_ENABLE if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); +#ifdef TOKEN_SYNC_ENABLE + FuzzedDataProvider provider(data, size); HapTokenInfoForSync hapSync; - - int32_t result = AccessTokenKit::GetHapTokenInfoFromRemote(fuzzData.GetData(), hapSync); - return result == RET_SUCCESS; + return AccessTokenKit::GetHapTokenInfoFromRemote( + provider.ConsumeIntegral(), hapSync) == RET_SUCCESS; #else return true; #endif diff --git a/test/fuzztest/innerkits/accesstoken/getnativetokenid_fuzzer/getnativetokenid_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/getnativetokenid_fuzzer/getnativetokenid_fuzzer.cpp index 49b86531c..a63c40f09 100644 --- a/test/fuzztest/innerkits/accesstoken/getnativetokenid_fuzzer/getnativetokenid_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/getnativetokenid_fuzzer/getnativetokenid_fuzzer.cpp @@ -19,9 +19,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -29,15 +30,12 @@ using namespace OHOS::Security::AccessToken; namespace OHOS { bool GetNativeTokenIdFuzzTest(const uint8_t* data, size_t size) { - AccessTokenID tokenId = 0; if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - tokenId = AccessTokenKit::GetNativeTokenId(fuzzData.GenerateStochasticString()); - - return tokenId != 0; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::GetNativeTokenId(provider.ConsumeRandomLengthString()) != INVALID_TOKENID; } } diff --git a/test/fuzztest/innerkits/accesstoken/getnativetokeninfo_fuzzer/getnativetokeninfo_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/getnativetokeninfo_fuzzer/getnativetokeninfo_fuzzer.cpp index 3878176d3..f94777122 100644 --- a/test/fuzztest/innerkits/accesstoken/getnativetokeninfo_fuzzer/getnativetokeninfo_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/getnativetokeninfo_fuzzer/getnativetokeninfo_fuzzer.cpp @@ -19,9 +19,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -33,11 +34,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - NativeTokenInfo NativeTokenInfotest; - int32_t result = AccessTokenKit::GetNativeTokenInfo(fuzzData.GetData(), NativeTokenInfotest); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + NativeTokenInfo info; + return AccessTokenKit::GetNativeTokenInfo(provider.ConsumeIntegral(), info) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/getpermissionflags_fuzzer/getpermissionflags_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/getpermissionflags_fuzzer/getpermissionflags_fuzzer.cpp index e3027cfb7..e79163c6a 100644 --- a/test/fuzztest/innerkits/accesstoken/getpermissionflags_fuzzer/getpermissionflags_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/getpermissionflags_fuzzer/getpermissionflags_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -32,12 +33,10 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - uint32_t flag; - int32_t result = AccessTokenKit::GetPermissionFlag( - fuzzData.GetData(), fuzzData.GenerateStochasticString(), flag); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + uint32_t flag = 0; + return AccessTokenKit::GetPermissionFlag(provider.ConsumeIntegral(), + provider.ConsumeRandomLengthString(), flag) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/getpermissionrequesttogglestatus_fuzzer/getpermissionrequesttogglestatus_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/getpermissionrequesttogglestatus_fuzzer/getpermissionrequesttogglestatus_fuzzer.cpp index b7dab91bf..509ad0201 100644 --- a/test/fuzztest/innerkits/accesstoken/getpermissionrequesttogglestatus_fuzzer/getpermissionrequesttogglestatus_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/getpermissionrequesttogglestatus_fuzzer/getpermissionrequesttogglestatus_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -32,12 +33,10 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - uint32_t status; - int32_t result = AccessTokenKit::GetPermissionRequestToggleStatus( - fuzzData.GenerateStochasticString(), status, fuzzData.GetData()); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + uint32_t status = 0; + return AccessTokenKit::GetPermissionRequestToggleStatus(provider.ConsumeRandomLengthString(), status, + provider.ConsumeIntegral()) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/getpermissionsstatus_fuzzer/getpermissionsstatus_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/getpermissionsstatus_fuzzer/getpermissionsstatus_fuzzer.cpp index be3d1894b..7ee5ee465 100644 --- a/test/fuzztest/innerkits/accesstoken/getpermissionsstatus_fuzzer/getpermissionsstatus_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/getpermissionsstatus_fuzzer/getpermissionsstatus_fuzzer.cpp @@ -19,9 +19,11 @@ #include #include #include + #undef private #include "access_token.h" #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" #include "nativetoken_kit.h" #include "securec.h" #include "token_setproc.h" @@ -30,66 +32,6 @@ using namespace std; using namespace OHOS::Security::AccessToken; namespace OHOS { -const uint8_t* g_baseFuzzData = nullptr; -size_t g_baseFuzzSize = 0; -size_t g_baseFuzzPos = 0; - - void GetNativeToken() - { - uint64_t tokenId; - const char** perms = new (std::nothrow) const char *[1]; - if (perms == nullptr) { - return; - } - - 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 = "getpermissionsstatus_fuzzer_test", - .aplStr = "system_core", - }; - - 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; - } - errno_t ret = memcpy_s(&object, objectSize, g_baseFuzzData + g_baseFuzzPos, objectSize); - if (ret != EOK) { - return {}; - } - 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(); - } - std::string str(cstr); - return str; - } bool GetPermissionsStatusFuzzTest(const uint8_t* data, size_t size) { @@ -97,23 +39,9 @@ size_t g_baseFuzzPos = 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)); - std::vector permsList; - PermissionListState perm = { - .permissionName = testPerName, - .state = SETTING_OPER, - }; - permsList.emplace_back(perm); - PermissionGrantInfo info; - AccessTokenKit::GetPermissionsStatus(tokenId, permsList); - } - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + std::vector permList; + return AccessTokenKit::GetPermissionsStatus(provider.ConsumeIntegral(), permList) == RET_SUCCESS; } } @@ -121,7 +49,6 @@ size_t g_baseFuzzPos = 0; extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { /* Run your code on data */ - OHOS::GetNativeToken(); OHOS::GetPermissionsStatusFuzzTest(data, size); return 0; } diff --git a/test/fuzztest/innerkits/accesstoken/getpermissionusedtype_fuzzer/getpermissionusedtype_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/getpermissionusedtype_fuzzer/getpermissionusedtype_fuzzer.cpp index 683cda6d0..9a91c2a54 100644 --- a/test/fuzztest/innerkits/accesstoken/getpermissionusedtype_fuzzer/getpermissionusedtype_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/getpermissionusedtype_fuzzer/getpermissionusedtype_fuzzer.cpp @@ -19,9 +19,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -32,11 +33,10 @@ bool GetPermissionUsedTypeFuzzTest(const uint8_t* data, size_t size) if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - PermUsedTypeEnum type = AccessTokenKit::GetPermissionUsedType( - fuzzData.GetData(), fuzzData.GenerateStochasticString()); - return type != PermUsedTypeEnum::PERM_USED_TYPE_BUTT; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::GetPermissionUsedType(provider.ConsumeIntegral(), + provider.ConsumeRandomLengthString()) != PermUsedTypeEnum::PERM_USED_TYPE_BUTT; } } diff --git a/test/fuzztest/innerkits/accesstoken/getremotenativetokenid_fuzzer/getremotenativetokenid_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/getremotenativetokenid_fuzzer/getremotenativetokenid_fuzzer.cpp index 38279a593..887dc1b1d 100644 --- a/test/fuzztest/innerkits/accesstoken/getremotenativetokenid_fuzzer/getremotenativetokenid_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/getremotenativetokenid_fuzzer/getremotenativetokenid_fuzzer.cpp @@ -19,9 +19,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -29,17 +30,16 @@ using namespace OHOS::Security::AccessToken; namespace OHOS { bool GetRemoteNativeTokenIDFuzzTest(const uint8_t* data, size_t size) { - AccessTokenID tokenId = 0; -#ifdef TOKEN_SYNC_ENABLE if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - tokenId = AccessTokenKit::GetRemoteNativeTokenID( - fuzzData.GenerateStochasticString(), fuzzData.GetData()); +#ifdef TOKEN_SYNC_ENABLE + FuzzedDataProvider provider(data, size); + return AccessTokenKit::GetRemoteNativeTokenID(provider.ConsumeRandomLengthString(), + provider.ConsumeIntegral()) != INVALID_TOKENID; #endif - return tokenId != 0; + return true; } } diff --git a/test/fuzztest/innerkits/accesstoken/getrendertokenid_fuzzer/getrendertokenid_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/getrendertokenid_fuzzer/getrendertokenid_fuzzer.cpp index 7f6e53fec..85189c985 100644 --- a/test/fuzztest/innerkits/accesstoken/getrendertokenid_fuzzer/getrendertokenid_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/getrendertokenid_fuzzer/getrendertokenid_fuzzer.cpp @@ -18,10 +18,11 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private -#include "tokenid_kit.h" #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" +#include "tokenid_kit.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -33,11 +34,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenID tokenId = fuzzData.GetData(); - uint64_t retTokenId = TokenIdKit::GetRenderTokenID(tokenId); - - return retTokenId != tokenId; + FuzzedDataProvider provider(data, size); + AccessTokenID tokenId = provider.ConsumeIntegral(); + return TokenIdKit::GetRenderTokenID(tokenId) != tokenId; } } diff --git a/test/fuzztest/innerkits/accesstoken/getreqpermissions_fuzzer/getreqpermissions_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/getreqpermissions_fuzzer/getreqpermissions_fuzzer.cpp index be2420d60..81a82cd48 100644 --- a/test/fuzztest/innerkits/accesstoken/getreqpermissions_fuzzer/getreqpermissions_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/getreqpermissions_fuzzer/getreqpermissions_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace OHOS::Security::AccessToken; @@ -31,11 +32,10 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::vector permStatSystemList; - int32_t result = AccessTokenKit::GetReqPermissions(fuzzData.GetData(), permStatSystemList, true); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + std::vector list; + return AccessTokenKit::GetReqPermissions( + provider.ConsumeIntegral(), list, provider.ConsumeBool()) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/getseccompenhance_fuzzer/getseccompenhance_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/getseccompenhance_fuzzer/getseccompenhance_fuzzer.cpp index 50a3f7dfe..8cdaf5650 100644 --- a/test/fuzztest/innerkits/accesstoken/getseccompenhance_fuzzer/getseccompenhance_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/getseccompenhance_fuzzer/getseccompenhance_fuzzer.cpp @@ -20,9 +20,9 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -34,11 +34,10 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - + FuzzedDataProvider provider(data, size); SecCompEnhanceData secData; - return AccessTokenKit::GetSecCompEnhance(fuzzData.GetData(), secData) == 0; + return AccessTokenKit::GetSecCompEnhance(provider.ConsumeIntegral(), secData) == 0; } } diff --git a/test/fuzztest/innerkits/accesstoken/getselfpermissionsstate_fuzzer/getselfpermissionsstate_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/getselfpermissionsstate_fuzzer/getselfpermissionsstate_fuzzer.cpp index 50e9442e4..274530f8f 100644 --- a/test/fuzztest/innerkits/accesstoken/getselfpermissionsstate_fuzzer/getselfpermissionsstate_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/getselfpermissionsstate_fuzzer/getselfpermissionsstate_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -32,17 +33,16 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::vector permsList1; - PermissionListState perm1 = { - .permissionName = fuzzData.GenerateStochasticString(), - .state = SETTING_OPER, + FuzzedDataProvider provider(data, size); + std::vector permsList; + PermissionListState perm = { + .permissionName = provider.ConsumeRandomLengthString(), + .state = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionOper::BUTT_OPER))), }; - permsList1.emplace_back(perm1); + permsList.emplace_back(perm); PermissionGrantInfo info; - int32_t result = AccessTokenKit::GetSelfPermissionsState(permsList1, info); - - return result == RET_SUCCESS; + return AccessTokenKit::GetSelfPermissionsState(permsList, info) != PermissionOper::BUTT_OPER; } } diff --git a/test/fuzztest/innerkits/accesstoken/getselfpermissionstatus_fuzzer/getselfpermissionstatus_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/getselfpermissionstatus_fuzzer/getselfpermissionstatus_fuzzer.cpp index a9b21bd23..481318729 100644 --- a/test/fuzztest/innerkits/accesstoken/getselfpermissionstatus_fuzzer/getselfpermissionstatus_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/getselfpermissionstatus_fuzzer/getselfpermissionstatus_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -32,12 +33,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::string permissionName = fuzzData.GenerateStochasticString(); + FuzzedDataProvider provider(data, size); PermissionOper status; - - AccessTokenKit::GetSelfPermissionStatus(permissionName, status); - return true; + return AccessTokenKit::GetSelfPermissionStatus(provider.ConsumeRandomLengthString(), status) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/gettokenidbyuserid_fuzzer/gettokenidbyuserid_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/gettokenidbyuserid_fuzzer/gettokenidbyuserid_fuzzer.cpp index 81386931b..e75db851d 100644 --- a/test/fuzztest/innerkits/accesstoken/gettokenidbyuserid_fuzzer/gettokenidbyuserid_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/gettokenidbyuserid_fuzzer/gettokenidbyuserid_fuzzer.cpp @@ -16,9 +16,10 @@ #include "gettokenidbyuserid_fuzzer.h" #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -30,11 +31,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); std::unordered_set tokenIdList; - int32_t result = AccessTokenKit::GetTokenIDByUserID(fuzzData.GetData(), tokenIdList); - - return result == RET_SUCCESS; + return AccessTokenKit::GetTokenIDByUserID(provider.ConsumeIntegral(), tokenIdList) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/gettokentype_fuzzer/gettokentype_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/gettokentype_fuzzer/gettokentype_fuzzer.cpp index d2041314f..d386e037b 100644 --- a/test/fuzztest/innerkits/accesstoken/gettokentype_fuzzer/gettokentype_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/gettokentype_fuzzer/gettokentype_fuzzer.cpp @@ -17,23 +17,22 @@ #include #include -#include "accesstoken_fuzzdata.h" + #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace OHOS::Security::AccessToken; namespace OHOS { bool GetTokenTypeFuzzTest(const uint8_t* data, size_t size) { - ATokenTypeEnum ATokenType; if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - ATokenType = AccessTokenKit::GetTokenType(fuzzData.GetData()); - - return true; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::GetTokenType( + provider.ConsumeIntegral()) != ATokenTypeEnum::TOKEN_TYPE_BUTT; } } diff --git a/test/fuzztest/innerkits/accesstoken/gettokentypeflag_fuzzer/gettokentypeflag_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/gettokentypeflag_fuzzer/gettokentypeflag_fuzzer.cpp index b70090e5d..22c442719 100644 --- a/test/fuzztest/innerkits/accesstoken/gettokentypeflag_fuzzer/gettokentypeflag_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/gettokentypeflag_fuzzer/gettokentypeflag_fuzzer.cpp @@ -17,8 +17,9 @@ #include #include -#include "accesstoken_fuzzdata.h" + #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace OHOS::Security::AccessToken; @@ -29,10 +30,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - int32_t result = AccessTokenKit::GetTokenTypeFlag(fuzzData.GetData()); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::GetTokenTypeFlag( + provider.ConsumeIntegral()) != ATokenTypeEnum::TOKEN_TYPE_BUTT; } } diff --git a/test/fuzztest/innerkits/accesstoken/grantpermission_fuzzer/grantpermission_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/grantpermission_fuzzer/grantpermission_fuzzer.cpp index c895827e2..6c0671867 100644 --- a/test/fuzztest/innerkits/accesstoken/grantpermission_fuzzer/grantpermission_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/grantpermission_fuzzer/grantpermission_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -32,11 +33,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - int32_t result = AccessTokenKit::GrantPermission( - fuzzData.GetData(), fuzzData.GenerateStochasticString(), 0); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::GrantPermission(provider.ConsumeIntegral(), + provider.ConsumeRandomLengthString(), provider.ConsumeIntegral()) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/grantpermissionforspecifiedtime_fuzzer/grantpermissionforspecifiedtime_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/grantpermissionforspecifiedtime_fuzzer/grantpermissionforspecifiedtime_fuzzer.cpp index 99b78d554..d5cd835c2 100644 --- a/test/fuzztest/innerkits/accesstoken/grantpermissionforspecifiedtime_fuzzer/grantpermissionforspecifiedtime_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/grantpermissionforspecifiedtime_fuzzer/grantpermissionforspecifiedtime_fuzzer.cpp @@ -19,25 +19,24 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; namespace OHOS { - bool AllocHapTokenFuzzTest(const uint8_t* data, size_t size) + bool GrantPermissionForSpecifiedTimeFuzzTest(const uint8_t* data, size_t size) { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::string permissionName(fuzzData.GenerateStochasticString()); - int32_t result = AccessTokenKit::GrantPermissionForSpecifiedTime( - fuzzData.GetData(), permissionName, fuzzData.GetData()); - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::GrantPermissionForSpecifiedTime(provider.ConsumeIntegral(), + provider.ConsumeRandomLengthString(), provider.ConsumeIntegral()) == RET_SUCCESS; } } @@ -45,6 +44,6 @@ namespace OHOS { extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { /* Run your code on data */ - OHOS::AllocHapTokenFuzzTest(data, size); + OHOS::GrantPermissionForSpecifiedTimeFuzzTest(data, size); return 0; } diff --git a/test/fuzztest/innerkits/accesstoken/inithaptoken_fuzzer/inithaptoken_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/inithaptoken_fuzzer/inithaptoken_fuzzer.cpp index 9bce52c57..e275c6204 100644 --- a/test/fuzztest/innerkits/accesstoken/inithaptoken_fuzzer/inithaptoken_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/inithaptoken_fuzzer/inithaptoken_fuzzer.cpp @@ -21,63 +21,99 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; -const int CONSTANTS_NUMBER_TWO = 2; -static const int32_t ROOT_UID = 0; namespace OHOS { + void InitHapInfoParams(const std::string& bundleName, FuzzedDataProvider& provider, HapInfoParams ¶m) + { + 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, + HapPolicyParams& policy) + { + PermissionDef def = { + .permissionName = permissionName, + .bundleName = bundleName, + .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(), + }; + + PermissionStateFull state = { + .permissionName = permissionName, + .isGeneral = provider.ConsumeBool(), + .resDeviceID = {provider.ConsumeRandomLengthString()}, + .grantStatus = {static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionState::PERMISSION_GRANTED)))}, + .grantFlags = {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 InitHapTokenFuzzTest(const uint8_t* data, size_t size) { - AccessTokenIDEx tokenIdEx = {0}; if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - std::string permissionName(fuzzData.GenerateStochasticString()); - std::string bundleName(fuzzData.GenerateStochasticString()); - PermissionDef testPermDef; - testPermDef.permissionName = permissionName; - testPermDef.bundleName = bundleName; - testPermDef.grantMode = 1; - testPermDef.availableLevel = APL_NORMAL; - testPermDef.label = fuzzData.GenerateStochasticString(); - testPermDef.labelId = 1; - testPermDef.description = fuzzData.GenerateStochasticString(); - testPermDef.descriptionId = 1; + FuzzedDataProvider provider(data, size); + std::string permissionName = provider.ConsumeRandomLengthString(); + std::string bundleName = provider.ConsumeRandomLengthString(); - PermissionStateFull testState; - testState.permissionName = permissionName; - testState.isGeneral = true; - testState.resDeviceID = {fuzzData.GenerateStochasticString()}; - testState.grantStatus = {PermissionState::PERMISSION_GRANTED}; - testState.grantFlags = {1}; - HapInfoParams TestInfoParms = { - .userID = 1, - .bundleName = bundleName, - .instIndex = 0, - .appIDDesc = fuzzData.GenerateStochasticString() - }; - HapPolicyParams TestPolicyPrams = { - .apl = APL_NORMAL, - .domain = fuzzData.GenerateStochasticString(), - .permList = {testPermDef}, - .permStateList = {testState} - }; + HapInfoParams param; + InitHapInfoParams(bundleName, provider, param); - bool enable = ((size % CONSTANTS_NUMBER_TWO) == 0); - if (enable) { - setuid(CONSTANTS_NUMBER_TWO); - } - int32_t res = AccessTokenKit::InitHapToken(TestInfoParms, TestPolicyPrams, tokenIdEx); - setuid(ROOT_UID); + HapPolicyParams policy; + InitHapPolicy(permissionName, bundleName, provider, policy); - return res == 0; + AccessTokenIDEx tokenIdEx = {0}; + return AccessTokenKit::InitHapToken(param, policy, tokenIdEx) == 0; } } diff --git a/test/fuzztest/innerkits/accesstoken/inituserpolicy_fuzzer/inituserpolicy_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/inituserpolicy_fuzzer/inituserpolicy_fuzzer.cpp index 1ab0898ae..a09d7791f 100644 --- a/test/fuzztest/innerkits/accesstoken/inituserpolicy_fuzzer/inituserpolicy_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/inituserpolicy_fuzzer/inituserpolicy_fuzzer.cpp @@ -19,10 +19,11 @@ #include #include #include + #undef private -#include "accesstoken_fuzzdata.h" #include "accesstoken_kit.h" #include "access_token.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -34,13 +35,13 @@ bool InitUserPolicyFuzzTest(const uint8_t* data, size_t size) return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); - std::string permissionName(fuzzData.GenerateStochasticString()); + std::string permissionName = provider.ConsumeRandomLengthString(); const std::vector permList = {permissionName}; UserState state; - state.userId = fuzzData.GetData(); - state.isActive = fuzzData.GenerateStochasticBool(); + state.userId = provider.ConsumeIntegral(); + state.isActive = provider.ConsumeBool(); std::vector userList = {state}; AccessTokenKit::InitUserPolicy(userList, permList); AccessTokenKit::UpdateUserPolicy(userList); diff --git a/test/fuzztest/innerkits/accesstoken/istoastshownneeded_fuzzer/istoastshownneeded_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/istoastshownneeded_fuzzer/istoastshownneeded_fuzzer.cpp index 5dd6fa856..900e1ec5c 100644 --- a/test/fuzztest/innerkits/accesstoken/istoastshownneeded_fuzzer/istoastshownneeded_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/istoastshownneeded_fuzzer/istoastshownneeded_fuzzer.cpp @@ -20,9 +20,9 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -34,9 +34,8 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - - return AccessTokenKit::IsToastShownNeeded(fuzzData.GetData()); + FuzzedDataProvider provider(data, size); + return AccessTokenKit::IsToastShownNeeded(provider.ConsumeIntegral()); } } diff --git a/test/fuzztest/innerkits/accesstoken/registerpermstatechangecallback_fuzzer/registerpermstatechangecallback_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/registerpermstatechangecallback_fuzzer/registerpermstatechangecallback_fuzzer.cpp index 6e6a6e565..1bf1d28f4 100644 --- a/test/fuzztest/innerkits/accesstoken/registerpermstatechangecallback_fuzzer/registerpermstatechangecallback_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/registerpermstatechangecallback_fuzzer/registerpermstatechangecallback_fuzzer.cpp @@ -18,12 +18,13 @@ #include #include #include + #include "accesstoken_callbacks.h" -#include "accesstoken_fuzzdata.h" #include "accesstoken_kit.h" #define private public #include "accesstoken_manager_client.h" #undef private +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -53,10 +54,10 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); PermStateChangeScope scopeInfo; - scopeInfo.permList = { fuzzData.GenerateStochasticString() }; - scopeInfo.tokenIDs = { fuzzData.GetData() }; + scopeInfo.permList = { provider.ConsumeRandomLengthString() }; + scopeInfo.tokenIDs = { provider.ConsumeIntegral() }; auto callbackPtr = std::make_shared(scopeInfo); AccessTokenKit::RegisterPermStateChangeCallback(callbackPtr); auto callback = new (std::nothrow) PermissionStateChangeCallback(callbackPtr); diff --git a/test/fuzztest/innerkits/accesstoken/registerseccompenhance_fuzzer/registerseccompenhance_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/registerseccompenhance_fuzzer/registerseccompenhance_fuzzer.cpp index b18d9fa51..5e96b26d4 100644 --- a/test/fuzztest/innerkits/accesstoken/registerseccompenhance_fuzzer/registerseccompenhance_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/registerseccompenhance_fuzzer/registerseccompenhance_fuzzer.cpp @@ -20,9 +20,9 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -34,15 +34,14 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - + FuzzedDataProvider provider(data, size); SecCompEnhanceData secData; secData.callback = nullptr; - 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(); return AccessTokenKit::RegisterSecCompEnhance(secData) == 0; } diff --git a/test/fuzztest/innerkits/accesstoken/requestapppermonsetting_fuzzer/requestapppermonsetting_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/requestapppermonsetting_fuzzer/requestapppermonsetting_fuzzer.cpp index d89cd97e4..893f87fd9 100644 --- a/test/fuzztest/innerkits/accesstoken/requestapppermonsetting_fuzzer/requestapppermonsetting_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/requestapppermonsetting_fuzzer/requestapppermonsetting_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -32,8 +33,8 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - AccessTokenKit::RequestAppPermOnSetting(fuzzData.GetData()); + FuzzedDataProvider provider(data, size); + AccessTokenKit::RequestAppPermOnSetting(provider.ConsumeIntegral()); return true; } diff --git a/test/fuzztest/innerkits/accesstoken/revokeusergrantedpermission_fuzzer/revokeusergrantedpermission_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/revokeusergrantedpermission_fuzzer/revokeusergrantedpermission_fuzzer.cpp index a0ebdad2d..45ad4e878 100644 --- a/test/fuzztest/innerkits/accesstoken/revokeusergrantedpermission_fuzzer/revokeusergrantedpermission_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/revokeusergrantedpermission_fuzzer/revokeusergrantedpermission_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -32,11 +33,11 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - int32_t result = AccessTokenKit::RevokePermission( - fuzzData.GetData(), fuzzData.GenerateStochasticString(), 0); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + uint32_t flag = provider.ConsumeIntegralInRange( + 0, static_cast(PermissionFlag::PERMISSION_ALLOW_THIS_TIME)); + return AccessTokenKit::RevokePermission(provider.ConsumeIntegral(), + provider.ConsumeRandomLengthString(), flag) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/setpermdialogcap_fuzzer/setpermdialogcap_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/setpermdialogcap_fuzzer/setpermdialogcap_fuzzer.cpp index cadbfcd40..13025d8ce 100644 --- a/test/fuzztest/innerkits/accesstoken/setpermdialogcap_fuzzer/setpermdialogcap_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/setpermdialogcap_fuzzer/setpermdialogcap_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -31,15 +32,14 @@ namespace OHOS { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); - HapBaseInfo baseInfo; - baseInfo.userID = fuzzData.GetData(); - baseInfo.bundleName = fuzzData.GenerateStochasticString(); - baseInfo.instIndex = fuzzData.GetData(); - int32_t result = AccessTokenKit::SetPermDialogCap(baseInfo, false); + FuzzedDataProvider provider(data, size); + HapBaseInfo baseInfo; + baseInfo.userID = provider.ConsumeIntegral(); + baseInfo.bundleName = provider.ConsumeRandomLengthString(); + baseInfo.instIndex = provider.ConsumeIntegral(); - return result == RET_SUCCESS; + return AccessTokenKit::SetPermDialogCap(baseInfo, provider.ConsumeBool()) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/setpermissionrequesttogglestatus_fuzzer/setpermissionrequesttogglestatus_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/setpermissionrequesttogglestatus_fuzzer/setpermissionrequesttogglestatus_fuzzer.cpp index 5cb9b8bc8..3ddfd3c77 100644 --- a/test/fuzztest/innerkits/accesstoken/setpermissionrequesttogglestatus_fuzzer/setpermissionrequesttogglestatus_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/setpermissionrequesttogglestatus_fuzzer/setpermissionrequesttogglestatus_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -32,11 +33,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - int32_t result = AccessTokenKit::SetPermissionRequestToggleStatus( - fuzzData.GenerateStochasticString(), fuzzData.GetData(), fuzzData.GetData()); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::SetPermissionRequestToggleStatus(provider.ConsumeRandomLengthString(), + provider.ConsumeIntegral(), provider.ConsumeIntegral()) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/setremotehaptokeninfo_fuzzer/setremotehaptokeninfo_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/setremotehaptokeninfo_fuzzer/setremotehaptokeninfo_fuzzer.cpp index 29dd19510..6cfce3ff9 100644 --- a/test/fuzztest/innerkits/accesstoken/setremotehaptokeninfo_fuzzer/setremotehaptokeninfo_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/setremotehaptokeninfo_fuzzer/setremotehaptokeninfo_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -28,33 +29,40 @@ using namespace OHOS::Security::AccessToken; namespace OHOS { bool SetRemoteHapTokenInfoFuzzTest(const uint8_t* data, size_t size) { -#ifdef TOKEN_SYNC_ENABLE if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); +#ifdef TOKEN_SYNC_ENABLE + FuzzedDataProvider provider(data, size); HapTokenInfo baseInfo = { - .ver = 1, - .userID = 1, - .bundleName = fuzzData.GenerateStochasticString(), - .instIndex = 1, - .tokenID = fuzzData.GetData(), - .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 = fuzzData.GenerateStochasticString()}; - std::vector permStateList; - permStateList.emplace_back(infoManagerTestState); + + 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)) + }; + std::vector permStateList = {state}; + HapTokenInfoForSync remoteTokenInfo = { .baseInfo = baseInfo, .permStateList = permStateList }; - int32_t result = AccessTokenKit::SetRemoteHapTokenInfo(fuzzData.GenerateStochasticString(), remoteTokenInfo); - return result == RET_SUCCESS; + return AccessTokenKit::SetRemoteHapTokenInfo( + provider.ConsumeRandomLengthString(), remoteTokenInfo) == RET_SUCCESS; #else return true; #endif diff --git a/test/fuzztest/innerkits/accesstoken/unregisterpermstatechangecallback_fuzzer/unregisterpermstatechangecallback_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/unregisterpermstatechangecallback_fuzzer/unregisterpermstatechangecallback_fuzzer.cpp index cbc1305e7..a67442a93 100644 --- a/test/fuzztest/innerkits/accesstoken/unregisterpermstatechangecallback_fuzzer/unregisterpermstatechangecallback_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/unregisterpermstatechangecallback_fuzzer/unregisterpermstatechangecallback_fuzzer.cpp @@ -18,8 +18,9 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -49,14 +50,12 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); PermStateChangeScope scopeInfos; - scopeInfos.permList = { fuzzData.GenerateStochasticString() }; - scopeInfos.tokenIDs = { fuzzData.GetData() }; + scopeInfos.tokenIDs = {provider.ConsumeIntegral()}; + scopeInfos.permList = {provider.ConsumeRandomLengthString()}; auto callbackPtr = std::make_shared(scopeInfos); - int32_t result = AccessTokenKit::UnRegisterPermStateChangeCallback(callbackPtr); - - return result == RET_SUCCESS; + return AccessTokenKit::UnRegisterPermStateChangeCallback(callbackPtr) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/updatehaptoken_fuzzer/updatehaptoken_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/updatehaptoken_fuzzer/updatehaptoken_fuzzer.cpp index ed9b8e3c1..0ecc44bed 100644 --- a/test/fuzztest/innerkits/accesstoken/updatehaptoken_fuzzer/updatehaptoken_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/updatehaptoken_fuzzer/updatehaptoken_fuzzer.cpp @@ -18,58 +18,90 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; namespace OHOS { + void InitHapPolicy(FuzzedDataProvider& provider, HapPolicyParams& 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(), + }; + + PermissionStateFull state = { + .permissionName = permissionName, + .isGeneral = provider.ConsumeBool(), + .resDeviceID = {provider.ConsumeRandomLengthString()}, + .grantStatus = {static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionState::PERMISSION_GRANTED)))}, + .grantFlags = {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 UpdateHapTokenFuzzTest(const uint8_t* data, size_t size) { if ((data == nullptr) || (size == 0)) { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); AccessTokenIDEx tokenIDex = { - .tokenIdExStruct.tokenID = fuzzData.GetData(), - .tokenIdExStruct.tokenAttr = fuzzData.GetData(), + .tokenIdExStruct.tokenID = provider.ConsumeIntegral(), + .tokenIdExStruct.tokenAttr = provider.ConsumeIntegral(), }; - std::string permissionName = fuzzData.GenerateStochasticString(); - PermissionDef testPermDef; - testPermDef.permissionName = permissionName; - testPermDef.bundleName = fuzzData.GenerateStochasticString(); - testPermDef.grantMode = 1; - testPermDef.availableLevel = APL_NORMAL; - testPermDef.label = fuzzData.GenerateStochasticString(); - testPermDef.labelId = 1; - testPermDef.description = fuzzData.GenerateStochasticString(); - testPermDef.descriptionId = 1; - - PermissionStateFull testState; - testState.permissionName = permissionName; - testState.isGeneral = true; - testState.resDeviceID = {fuzzData.GenerateStochasticString()}; - testState.grantStatus = {PermissionState::PERMISSION_GRANTED}; - testState.grantFlags = {1}; - HapPolicyParams TestPolicyParams = { - .apl = APL_NORMAL, - .domain = fuzzData.GenerateStochasticString(), - .permList = {testPermDef}, - .permStateList = {testState} + UpdateHapInfoParams info = { + .appIDDesc = provider.ConsumeRandomLengthString(), + .apiVersion = provider.ConsumeIntegral(), + .isSystemApp = provider.ConsumeBool(), + .appDistributionType = provider.ConsumeRandomLengthString(), + .isAtomicService = provider.ConsumeBool(), + .dataRefresh = provider.ConsumeBool(), }; - UpdateHapInfoParams info; - info.appIDDesc = fuzzData.GenerateStochasticString(); - info.apiVersion = 8; // 8 means the version - info.isSystemApp = false; - int32_t result = AccessTokenKit::UpdateHapToken( - tokenIDex, info, TestPolicyParams); + HapPolicyParams policy; + InitHapPolicy(provider, policy); - return result == RET_SUCCESS; + return AccessTokenKit::UpdateHapToken(tokenIDex, info, policy) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/updateseccompenhance_fuzzer/updateseccompenhance_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/updateseccompenhance_fuzzer/updateseccompenhance_fuzzer.cpp index ae4fcaf3f..da6905cc5 100644 --- a/test/fuzztest/innerkits/accesstoken/updateseccompenhance_fuzzer/updateseccompenhance_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/updateseccompenhance_fuzzer/updateseccompenhance_fuzzer.cpp @@ -20,9 +20,9 @@ #include #include -#include "accesstoken_fuzzdata.h" #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -34,9 +34,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - - return AccessTokenKit::UpdateSecCompEnhance(fuzzData.GetData(), fuzzData.GetData()) == 0; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::UpdateSecCompEnhance(provider.ConsumeIntegral(), + provider.ConsumeIntegral()) == 0; } } diff --git a/test/fuzztest/innerkits/accesstoken/verifyaccesstoken001_fuzzer/verifyaccesstoken001_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/verifyaccesstoken001_fuzzer/verifyaccesstoken001_fuzzer.cpp index 818620345..3bdc61791 100644 --- a/test/fuzztest/innerkits/accesstoken/verifyaccesstoken001_fuzzer/verifyaccesstoken001_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/verifyaccesstoken001_fuzzer/verifyaccesstoken001_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -32,11 +33,10 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - int32_t result = AccessTokenKit::VerifyAccessToken(fuzzData.GetData(), - fuzzData.GetData(), fuzzData.GenerateStochasticString(), false); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::VerifyAccessToken(provider.ConsumeIntegral(), + provider.ConsumeIntegral(), provider.ConsumeRandomLengthString(), + provider.ConsumeBool()) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/verifyaccesstoken_fuzzer/verifyaccesstoken_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/verifyaccesstoken_fuzzer/verifyaccesstoken_fuzzer.cpp index f766d2e4e..0c2a0464d 100644 --- a/test/fuzztest/innerkits/accesstoken/verifyaccesstoken_fuzzer/verifyaccesstoken_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/verifyaccesstoken_fuzzer/verifyaccesstoken_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -32,11 +33,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - int32_t result = AccessTokenKit::VerifyAccessToken( - fuzzData.GetData(), fuzzData.GenerateStochasticString(), false); - - return result == RET_SUCCESS; + FuzzedDataProvider provider(data, size); + return AccessTokenKit::VerifyAccessToken(provider.ConsumeIntegral(), + provider.ConsumeRandomLengthString(), provider.ConsumeBool()) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/accesstoken/verifyaccesstokenwithlist_fuzzer/verifyaccesstokenwithlist_fuzzer.cpp b/test/fuzztest/innerkits/accesstoken/verifyaccesstokenwithlist_fuzzer/verifyaccesstokenwithlist_fuzzer.cpp index 691122aeb..a621f7f00 100644 --- a/test/fuzztest/innerkits/accesstoken/verifyaccesstokenwithlist_fuzzer/verifyaccesstokenwithlist_fuzzer.cpp +++ b/test/fuzztest/innerkits/accesstoken/verifyaccesstokenwithlist_fuzzer/verifyaccesstokenwithlist_fuzzer.cpp @@ -18,9 +18,10 @@ #include #include #include -#include "accesstoken_fuzzdata.h" + #undef private #include "accesstoken_kit.h" +#include "fuzzer/FuzzedDataProvider.h" using namespace std; using namespace OHOS::Security::AccessToken; @@ -33,19 +34,16 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - - int permSize = fuzzData.GetData() % MAX_PERMISSION_SIZE; + FuzzedDataProvider provider(data, size); + int32_t permSize = provider.ConsumeIntegral() % MAX_PERMISSION_SIZE; std::vector permissionList; - std::vector permStateList; - 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()); } - int32_t result = AccessTokenKit::VerifyAccessToken( - fuzzData.GetData(), permissionList, permStateList, false); - - return result == RET_SUCCESS; + std::vector permStateList; + return AccessTokenKit::VerifyAccessToken(provider.ConsumeIntegral(), permissionList, + permStateList, provider.ConsumeBool()) == RET_SUCCESS; } } diff --git a/test/fuzztest/innerkits/privacy/addpermissionusedrecord_fuzzer/addpermissionusedrecord_fuzzer.cpp b/test/fuzztest/innerkits/privacy/addpermissionusedrecord_fuzzer/addpermissionusedrecord_fuzzer.cpp index 83b41ee9e..4de8f5dd0 100644 --- a/test/fuzztest/innerkits/privacy/addpermissionusedrecord_fuzzer/addpermissionusedrecord_fuzzer.cpp +++ b/test/fuzztest/innerkits/privacy/addpermissionusedrecord_fuzzer/addpermissionusedrecord_fuzzer.cpp @@ -20,7 +20,7 @@ #include #include -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "privacy_kit.h" @@ -34,16 +34,10 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - - AddPermParamInfo info; - info.tokenId = static_cast(fuzzData.GetData()); - info.permissionName = fuzzData.GenerateStochasticString(); - info.successCount = fuzzData.GetData(); - info.failCount = fuzzData.GetData(); - info.type = fuzzData.GenerateStochasticEnmu(PERM_USED_TYPE_BUTT); - - return PrivacyKit::AddPermissionUsedRecord(info) == 0; + FuzzedDataProvider provider(data, size); + return PrivacyKit::AddPermissionUsedRecord(provider.ConsumeIntegral(), + provider.ConsumeRandomLengthString(), provider.ConsumeIntegral(), + provider.ConsumeIntegral(), provider.ConsumeBool()) == 0; } } diff --git a/test/fuzztest/innerkits/privacy/addpermissionusedrecordasync_fuzzer/addpermissionusedrecordasync_fuzzer.cpp b/test/fuzztest/innerkits/privacy/addpermissionusedrecordasync_fuzzer/addpermissionusedrecordasync_fuzzer.cpp index 16d20756b..ab93a45ee 100644 --- a/test/fuzztest/innerkits/privacy/addpermissionusedrecordasync_fuzzer/addpermissionusedrecordasync_fuzzer.cpp +++ b/test/fuzztest/innerkits/privacy/addpermissionusedrecordasync_fuzzer/addpermissionusedrecordasync_fuzzer.cpp @@ -20,7 +20,7 @@ #include #include -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "privacy_kit.h" @@ -34,16 +34,17 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - + FuzzedDataProvider provider(data, size); AddPermParamInfo info; - info.tokenId = static_cast(fuzzData.GetData()); - info.permissionName = fuzzData.GenerateStochasticString(); - info.successCount = fuzzData.GetData(); - info.failCount = fuzzData.GetData(); - info.type = fuzzData.GenerateStochasticEnmu(PERM_USED_TYPE_BUTT); - - return PrivacyKit::AddPermissionUsedRecord(info, true) == 0; + PermissionUsedType type = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionUsedType::PERM_USED_TYPE_BUTT))); + info.tokenId = provider.ConsumeIntegral(); + info.permissionName = provider.ConsumeRandomLengthString(); + info.successCount = provider.ConsumeIntegral(); + info.failCount = provider.ConsumeIntegral(); + info.type = type; + + return PrivacyKit::AddPermissionUsedRecord(info, provider.ConsumeBool()) == 0; } } diff --git a/test/fuzztest/innerkits/privacy/getpermissionusedrecords_fuzzer/getpermissionusedrecords_fuzzer.cpp b/test/fuzztest/innerkits/privacy/getpermissionusedrecords_fuzzer/getpermissionusedrecords_fuzzer.cpp index 6e3173698..0db2ddeba 100644 --- a/test/fuzztest/innerkits/privacy/getpermissionusedrecords_fuzzer/getpermissionusedrecords_fuzzer.cpp +++ b/test/fuzztest/innerkits/privacy/getpermissionusedrecords_fuzzer/getpermissionusedrecords_fuzzer.cpp @@ -20,7 +20,7 @@ #include #include -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "privacy_kit.h" @@ -34,22 +34,20 @@ 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_SCREEN_UNLOCKED))) }; PermissionUsedResult res; - return PrivacyKit::GetPermissionUsedRecords(request, res) == 0; } } diff --git a/test/fuzztest/innerkits/privacy/getpermissionusedrecordtogglestatus_fuzzer/getpermissionusedrecordtogglestatus_fuzzer.cpp b/test/fuzztest/innerkits/privacy/getpermissionusedrecordtogglestatus_fuzzer/getpermissionusedrecordtogglestatus_fuzzer.cpp index 04ad8c8dc..6d51b0414 100644 --- a/test/fuzztest/innerkits/privacy/getpermissionusedrecordtogglestatus_fuzzer/getpermissionusedrecordtogglestatus_fuzzer.cpp +++ b/test/fuzztest/innerkits/privacy/getpermissionusedrecordtogglestatus_fuzzer/getpermissionusedrecordtogglestatus_fuzzer.cpp @@ -15,7 +15,7 @@ #include "getpermissionusedrecordtogglestatus_fuzzer.h" -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "privacy_kit.h" @@ -29,11 +29,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - int32_t userID = fuzzData.GetData(); - bool status = true; - - return PrivacyKit::GetPermissionUsedRecordToggleStatus(userID, status) == 0; + FuzzedDataProvider provider(data, size); + bool status = false; + return PrivacyKit::GetPermissionUsedRecordToggleStatus(provider.ConsumeIntegral(), status) == 0; } } diff --git a/test/fuzztest/innerkits/privacy/getpermissionusedtypeinfos_fuzzer/getpermissionusedtypeinfos_fuzzer.cpp b/test/fuzztest/innerkits/privacy/getpermissionusedtypeinfos_fuzzer/getpermissionusedtypeinfos_fuzzer.cpp index 2494a6d77..5bfb04192 100644 --- a/test/fuzztest/innerkits/privacy/getpermissionusedtypeinfos_fuzzer/getpermissionusedtypeinfos_fuzzer.cpp +++ b/test/fuzztest/innerkits/privacy/getpermissionusedtypeinfos_fuzzer/getpermissionusedtypeinfos_fuzzer.cpp @@ -20,7 +20,7 @@ #include #include -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "privacy_kit.h" @@ -34,11 +34,10 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); + FuzzedDataProvider provider(data, size); std::vector results; - - return PrivacyKit::GetPermissionUsedTypeInfos(static_cast(fuzzData.GetData()), - fuzzData.GenerateStochasticString(), results) == 0; + return PrivacyKit::GetPermissionUsedTypeInfos(provider.ConsumeIntegral(), + provider.ConsumeRandomLengthString(), results) == 0; } } diff --git a/test/fuzztest/innerkits/privacy/isallowedusingpermission_fuzzer/isallowedusingpermission_fuzzer.cpp b/test/fuzztest/innerkits/privacy/isallowedusingpermission_fuzzer/isallowedusingpermission_fuzzer.cpp index 0339a1e90..e7d5a2f8d 100644 --- a/test/fuzztest/innerkits/privacy/isallowedusingpermission_fuzzer/isallowedusingpermission_fuzzer.cpp +++ b/test/fuzztest/innerkits/privacy/isallowedusingpermission_fuzzer/isallowedusingpermission_fuzzer.cpp @@ -20,7 +20,7 @@ #include #include -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "privacy_kit.h" @@ -34,10 +34,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - - return PrivacyKit::IsAllowedUsingPermission(static_cast(fuzzData.GetData()), - fuzzData.GenerateStochasticString(), fuzzData.GetData()); + FuzzedDataProvider provider(data, size); + return PrivacyKit::IsAllowedUsingPermission(provider.ConsumeIntegral(), + provider.ConsumeRandomLengthString(), provider.ConsumeIntegral()); } } diff --git a/test/fuzztest/innerkits/privacy/registerpermactivestatuscallback_fuzzer/registerpermactivestatuscallback_fuzzer.cpp b/test/fuzztest/innerkits/privacy/registerpermactivestatuscallback_fuzzer/registerpermactivestatuscallback_fuzzer.cpp index 4c8b6ef44..f3b9ad439 100644 --- a/test/fuzztest/innerkits/privacy/registerpermactivestatuscallback_fuzzer/registerpermactivestatuscallback_fuzzer.cpp +++ b/test/fuzztest/innerkits/privacy/registerpermactivestatuscallback_fuzzer/registerpermactivestatuscallback_fuzzer.cpp @@ -20,7 +20,7 @@ #include #include -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "privacy_kit.h" @@ -52,9 +52,8 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - - std::vector permList = {fuzzData.GenerateStochasticString()}; + FuzzedDataProvider provider(data, size); + std::vector permList = {provider.ConsumeRandomLengthString()}; auto callback = std::make_shared(permList); callback->type_ = PERM_INACTIVE; (void)PrivacyKit::RegisterPermActiveStatusCallback(callback); diff --git a/test/fuzztest/innerkits/privacy/removepermissionusedrecords_fuzzer/removepermissionusedrecords_fuzzer.cpp b/test/fuzztest/innerkits/privacy/removepermissionusedrecords_fuzzer/removepermissionusedrecords_fuzzer.cpp index fe5649740..753cdebfb 100644 --- a/test/fuzztest/innerkits/privacy/removepermissionusedrecords_fuzzer/removepermissionusedrecords_fuzzer.cpp +++ b/test/fuzztest/innerkits/privacy/removepermissionusedrecords_fuzzer/removepermissionusedrecords_fuzzer.cpp @@ -20,7 +20,7 @@ #include #include -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "privacy_kit.h" @@ -34,9 +34,8 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - - return PrivacyKit::RemovePermissionUsedRecords(static_cast(fuzzData.GetData())) == 0; + FuzzedDataProvider provider(data, size); + return PrivacyKit::RemovePermissionUsedRecords(provider.ConsumeIntegral()) == 0; } } diff --git a/test/fuzztest/innerkits/privacy/setmutepolicy_fuzzer/setmutepolicy_fuzzer.cpp b/test/fuzztest/innerkits/privacy/setmutepolicy_fuzzer/setmutepolicy_fuzzer.cpp index 096dba505..90e427171 100644 --- a/test/fuzztest/innerkits/privacy/setmutepolicy_fuzzer/setmutepolicy_fuzzer.cpp +++ b/test/fuzztest/innerkits/privacy/setmutepolicy_fuzzer/setmutepolicy_fuzzer.cpp @@ -20,7 +20,7 @@ #include #include -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "privacy_kit.h" @@ -34,10 +34,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - - return PrivacyKit::SetMutePolicy(fuzzData.GetData(), fuzzData.GetData(), - fuzzData.GenerateStochasticBool(), fuzzData.GetData()) == 0; + FuzzedDataProvider provider(data, size); + return PrivacyKit::SetMutePolicy(provider.ConsumeIntegral(), provider.ConsumeIntegral(), + provider.ConsumeBool(), provider.ConsumeIntegral()) == 0; } } diff --git a/test/fuzztest/innerkits/privacy/setpermissionusedrecordtogglestatus_fuzzer/setpermissionusedrecordtogglestatus_fuzzer.cpp b/test/fuzztest/innerkits/privacy/setpermissionusedrecordtogglestatus_fuzzer/setpermissionusedrecordtogglestatus_fuzzer.cpp index fa92322cc..28d0da998 100644 --- a/test/fuzztest/innerkits/privacy/setpermissionusedrecordtogglestatus_fuzzer/setpermissionusedrecordtogglestatus_fuzzer.cpp +++ b/test/fuzztest/innerkits/privacy/setpermissionusedrecordtogglestatus_fuzzer/setpermissionusedrecordtogglestatus_fuzzer.cpp @@ -15,7 +15,7 @@ #include "setpermissionusedrecordtogglestatus_fuzzer.h" -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "privacy_kit.h" @@ -29,11 +29,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - int32_t userID = fuzzData.GetData(); - bool status = fuzzData.GenerateStochasticBool(); - - return PrivacyKit::SetPermissionUsedRecordToggleStatus(userID, status) == 0; + FuzzedDataProvider provider(data, size); + return PrivacyKit::SetPermissionUsedRecordToggleStatus(provider.ConsumeIntegral(), + provider.ConsumeBool()) == 0; } } diff --git a/test/fuzztest/innerkits/privacy/startusingpermission001_fuzzer/startusingpermission001_fuzzer.cpp b/test/fuzztest/innerkits/privacy/startusingpermission001_fuzzer/startusingpermission001_fuzzer.cpp index 93d0b5397..182b898ad 100644 --- a/test/fuzztest/innerkits/privacy/startusingpermission001_fuzzer/startusingpermission001_fuzzer.cpp +++ b/test/fuzztest/innerkits/privacy/startusingpermission001_fuzzer/startusingpermission001_fuzzer.cpp @@ -20,7 +20,7 @@ #include #include -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "privacy_kit.h" @@ -54,20 +54,21 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - + FuzzedDataProvider provider(data, size); auto callback = std::make_shared(); if (callback == nullptr) { return false; } - AccessTokenID tokenID = static_cast(fuzzData.GetData()); + AccessTokenID tokenID = provider.ConsumeIntegral(); if (g_realTokenFlag) { tokenID = g_realTokenId; g_realTokenFlag = false; } - return PrivacyKit::StartUsingPermission(tokenID, - fuzzData.GenerateStochasticString(), callback, fuzzData.GetData()) == 0; + PermissionUsedType type = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionUsedType::PERM_USED_TYPE_BUTT))); + return PrivacyKit::StartUsingPermission(tokenID, provider.ConsumeRandomLengthString(), callback, + provider.ConsumeIntegral(), type) == 0; } } diff --git a/test/fuzztest/innerkits/privacy/startusingpermission_fuzzer/startusingpermission_fuzzer.cpp b/test/fuzztest/innerkits/privacy/startusingpermission_fuzzer/startusingpermission_fuzzer.cpp index 57d742edf..17d54ab38 100644 --- a/test/fuzztest/innerkits/privacy/startusingpermission_fuzzer/startusingpermission_fuzzer.cpp +++ b/test/fuzztest/innerkits/privacy/startusingpermission_fuzzer/startusingpermission_fuzzer.cpp @@ -20,7 +20,7 @@ #include #include -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "privacy_kit.h" @@ -34,10 +34,11 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - - return PrivacyKit::StartUsingPermission(static_cast(fuzzData.GetData()), - fuzzData.GenerateStochasticString(), fuzzData.GetData()) == 0; + FuzzedDataProvider provider(data, size); + PermissionUsedType type = static_cast(provider.ConsumeIntegralInRange( + 0, static_cast(PermissionUsedType::PERM_USED_TYPE_BUTT))); + return PrivacyKit::StartUsingPermission(provider.ConsumeIntegral(), + provider.ConsumeRandomLengthString(), provider.ConsumeIntegral(), type) == 0; } } diff --git a/test/fuzztest/innerkits/privacy/stopusingpermission_fuzzer/stopusingpermission_fuzzer.cpp b/test/fuzztest/innerkits/privacy/stopusingpermission_fuzzer/stopusingpermission_fuzzer.cpp index 48940844a..4739df294 100644 --- a/test/fuzztest/innerkits/privacy/stopusingpermission_fuzzer/stopusingpermission_fuzzer.cpp +++ b/test/fuzztest/innerkits/privacy/stopusingpermission_fuzzer/stopusingpermission_fuzzer.cpp @@ -20,7 +20,7 @@ #include #include -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "privacy_kit.h" @@ -34,10 +34,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - - return PrivacyKit::StopUsingPermission(static_cast(fuzzData.GetData()), - fuzzData.GenerateStochasticString(), fuzzData.GetData()) == 0; + FuzzedDataProvider provider(data, size); + return PrivacyKit::StopUsingPermission(provider.ConsumeIntegral(), + provider.ConsumeRandomLengthString(), provider.ConsumeIntegral()) == 0; } } diff --git a/test/fuzztest/innerkits/privacy/unregisterpermactivestatuscallback_fuzzer/unregisterpermactivestatuscallback_fuzzer.cpp b/test/fuzztest/innerkits/privacy/unregisterpermactivestatuscallback_fuzzer/unregisterpermactivestatuscallback_fuzzer.cpp index 8012229bf..255da403f 100644 --- a/test/fuzztest/innerkits/privacy/unregisterpermactivestatuscallback_fuzzer/unregisterpermactivestatuscallback_fuzzer.cpp +++ b/test/fuzztest/innerkits/privacy/unregisterpermactivestatuscallback_fuzzer/unregisterpermactivestatuscallback_fuzzer.cpp @@ -20,7 +20,7 @@ #include #include -#include "accesstoken_fuzzdata.h" +#include "fuzzer/FuzzedDataProvider.h" #undef private #include "privacy_kit.h" @@ -52,11 +52,9 @@ namespace OHOS { return false; } - AccessTokenFuzzData fuzzData(data, size); - - std::vector permList = {fuzzData.GenerateStochasticString()}; + FuzzedDataProvider provider(data, size); + std::vector permList = {provider.ConsumeRandomLengthString()}; auto callback = std::make_shared(permList); - callback->type_ = PERM_INACTIVE; return PrivacyKit::UnRegisterPermActiveStatusCallback(callback) == 0; } -- Gitee