diff --git a/test/fuzztest/BUILD.gn b/test/fuzztest/BUILD.gn index e7b8a3e0b10171dcd2c896258541df7e0b6cb638..0398ed8665346ab00d8972e8fe02f05f6d5f406f 100644 --- a/test/fuzztest/BUILD.gn +++ b/test/fuzztest/BUILD.gn @@ -56,6 +56,7 @@ group("fuzztest") { "disableusermtpclientplugin_fuzzer:DisableUserMtpClientPluginFuzzTest", "usercertplugin_fuzzer:UserCertPluginFuzzTest", "managekeepaliveappsplugin_fuzzer:ManageKeepAliveAppsPluginFuzzTest", + "adminpoliciesstoragerdbupdate_fuzzer:AdminPoliciesStorageRdbUpdateFuzzTest", ] if (!enterprise_device_management_feature_pc_only) { diff --git a/test/fuzztest/addosaccountplugin_fuzzer/add_os_account_plugin_fuzzer.cpp b/test/fuzztest/addosaccountplugin_fuzzer/add_os_account_plugin_fuzzer.cpp index b609e0f63c27ebfdf18f54d6dcde4d2821a93bf6..2460c10aa72401672ac6b9aed06d5ae78dab09bd 100644 --- a/test/fuzztest/addosaccountplugin_fuzzer/add_os_account_plugin_fuzzer.cpp +++ b/test/fuzztest/addosaccountplugin_fuzzer/add_os_account_plugin_fuzzer.cpp @@ -29,6 +29,12 @@ namespace EDM { constexpr size_t MIN_SIZE = 4; constexpr int32_t WITHOUT_USERID = 0; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/adminpoliciesstoragerdb_fuzzer/admin_policies_storage_rdb_fuzzer.cpp b/test/fuzztest/adminpoliciesstoragerdb_fuzzer/admin_policies_storage_rdb_fuzzer.cpp index 269c301c8817acb58a2e2309a950890dea7cbda0..0d381819722a9a8de5df3422625840db660a4141 100644 --- a/test/fuzztest/adminpoliciesstoragerdb_fuzzer/admin_policies_storage_rdb_fuzzer.cpp +++ b/test/fuzztest/adminpoliciesstoragerdb_fuzzer/admin_policies_storage_rdb_fuzzer.cpp @@ -30,6 +30,21 @@ namespace OHOS { namespace EDM { constexpr size_t MIN_SIZE = 64; +void InitAdminParam(Admin &admin, const uint8_t* data, int32_t& pos, size_t& size, int32_t stringSize) +{ + AdminInfo fuzzAdminInfo; + fuzzAdminInfo.packageName_ = CommonFuzzer::GetString(data, pos, stringSize, size); + fuzzAdminInfo.className_ = CommonFuzzer::GetString(data, pos, stringSize, size); + fuzzAdminInfo.entInfo_.enterpriseName = CommonFuzzer::GetString(data, pos, stringSize, size); + fuzzAdminInfo.entInfo_.description = CommonFuzzer::GetString(data, pos, stringSize, size); + std::string permission = CommonFuzzer::GetString(data, pos, stringSize, size); + fuzzAdminInfo.permission_.push_back(permission); + ManagedEvent event = GetData(); + fuzzAdminInfo.managedEvents_.push_back(event); + fuzzAdminInfo.parentAdminName_ = CommonFuzzer::GetString(data, pos, stringSize, size); + admin.adminInfo_ = fuzzAdminInfo; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { @@ -42,38 +57,22 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) g_data = data; g_size = size; g_pos = 0; + int32_t pos = 0; + int32_t stringSize = size / 9; std::shared_ptr adminPoliciesStorageRdb = AdminPoliciesStorageRdb::GetInstance(); int32_t userId = CommonFuzzer::GetU32Data(data); - std::string fuzzString(reinterpret_cast(data), size); - ManagedEvent event = GetData(); Admin admin; - AdminInfo fuzzAdminInfo; - EntInfo entInfo; - entInfo.enterpriseName = fuzzString; - entInfo.description = fuzzString; - fuzzAdminInfo.packageName_ = fuzzString; - fuzzAdminInfo.className_ = fuzzString; - fuzzAdminInfo.entInfo_ = entInfo; - fuzzAdminInfo.permission_ = { fuzzString }; - fuzzAdminInfo.managedEvents_ = { event }; - fuzzAdminInfo.parentAdminName_ = fuzzString; - admin.adminInfo_ = fuzzAdminInfo; - std::vector permissions = { fuzzString }; + InitAdminParam(admin, data, pos, size, stringSize); adminPoliciesStorageRdb->InsertAdmin(userId, admin); - adminPoliciesStorageRdb->UpdateAdmin(userId, admin); adminPoliciesStorageRdb->CreateInsertValuesBucket(userId, admin); - std::string packageName(reinterpret_cast(data), size); - std::string currentParentName = fuzzString; - std::string targetParentName = fuzzString; - std::string stringInfo = fuzzString; - std::vector info = { fuzzString }; + std::string packageName = CommonFuzzer::GetString(data, pos, stringSize, size); + std::string stringInfo = CommonFuzzer::GetString(data, pos, stringSize, size); + std::string info = CommonFuzzer::GetString(data, pos, stringSize, size); + std::vector infos = {info}; adminPoliciesStorageRdb->DeleteAdmin(userId, packageName); - adminPoliciesStorageRdb->UpdateEntInfo(userId, packageName, entInfo); + ManagedEvent event = GetData(); std::vector managedEvents = {event}; - adminPoliciesStorageRdb->UpdateManagedEvents(userId, packageName, managedEvents); - adminPoliciesStorageRdb->ReplaceAdmin(packageName, userId, admin); - adminPoliciesStorageRdb->UpdateParentName(packageName, currentParentName, targetParentName); - adminPoliciesStorageRdb->SetAdminStringInfo(stringInfo, info); + adminPoliciesStorageRdb->SetAdminStringInfo(stringInfo, infos); std::shared_ptr resultSet; std::shared_ptr item = std::make_shared(admin); adminPoliciesStorageRdb->SetAdminItems(resultSet, item); diff --git a/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/BUILD.gn b/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/BUILD.gn new file mode 100644 index 0000000000000000000000000000000000000000..1f0f11e363da2fb2dc0956642948d6481856509d --- /dev/null +++ b/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/BUILD.gn @@ -0,0 +1,101 @@ +# Copyright (c) 2024 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#####################hydra-fuzz################### +import("//build/config/features.gni") +import("//build/ohos.gni") +import("//build/test.gni") +import("../../../common/config/common.gni") +module_output_path = "enterprise_device_management/enterprise_device_management" + +##############################fuzztest########################################## +ohos_fuzztest("AdminPoliciesStorageRdbUpdateFuzzTest") { + module_out_path = module_output_path + + fuzz_config_file = "." + + cflags = [ + "-g", + "-O0", + "-Wno-unused-variable", + "-fno-omit-frame-pointer", + ] + sources = [ + "../common/src/common_fuzzer.cpp", + "admin_policies_storage_rdb_update_fuzzer.cpp", + ] + + include_dirs = [ + "../common/include", + "../../../interfaces/inner_api/common/include", + ] + + configs = [ "../../../common/config:coverage_flags" ] + + deps = [ + "../../../common/external:edm_external_adapters", + "../../../common/native:edm_commom", + "../../../interfaces/inner_api:edmservice_kits", + "../../../interfaces/inner_api/plugin_kits:plugin_kits", + "../../unittest/utils:edm_unittest_utils", + "../enterprisedevicemgrstubmock_fuzzer:edmservice_fuzz_static", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:app_manager", + "access_token:libaccesstoken_sdk", + "access_token:libnativetoken", + "access_token:libnativetoken_shared", + "access_token:libtoken_setproc", + "bundle_framework:appexecfwk_base", + "bundle_framework:appexecfwk_core", + "cJSON:cjson", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "hilog:libhilog", + "init:libbegetutil", + "ipc:ipc_core", + "relational_store:native_rdb", + "safwk:system_ability_fwk", + "samgr:samgr_proxy", + "jsoncpp:jsoncpp", + ] + + if (enterprise_device_management_support_all) { + if (wifi_edm_enable) { + external_deps += [ "wifi:wifi_sdk" ] + } + if (netmanager_base_edm_enable && netmanager_ext_edm_enable) { + external_deps += [ + "netmanager_base:net_conn_manager_if", + "netmanager_base:net_policy_manager_if", + "netmanager_base:netsys_controller", + "netmanager_ext:ethernet_manager_if", + ] + } + if (drivers_interface_usb_edm_enable && usb_manager_edm_enable) { + external_deps += [ "usb_manager:usbsrv_client" ] + } + if (drivers_interface_usb_edm_enable && storage_service_edm_enable && + usb_manager_edm_enable) { + external_deps += [ "storage_service:storage_manager_sa_proxy" ] + } + if (bluetooth_edm_enable) { + external_deps += [ "bluetooth:btframework" ] + } + } + + subsystem_name = "customization" + part_name = "enterprise_device_management" +} diff --git a/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/admin_policies_storage_rdb_update_fuzzer.cpp b/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/admin_policies_storage_rdb_update_fuzzer.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ce8e081ada5031df9bcfed9992a8915d92935516 --- /dev/null +++ b/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/admin_policies_storage_rdb_update_fuzzer.cpp @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "admin_policies_storage_rdb_update_fuzzer.h" + +#include "cJSON.h" +#include "common_fuzzer.h" +#include "edm_ipc_interface_code.h" +#include "func_code.h" +#include "get_data_template.h" +#include "message_parcel.h" +#define private public +#include "admin_policies_storage_rdb.h" +#undef private +#include "ienterprise_device_mgr.h" + +namespace OHOS { +namespace EDM { +constexpr size_t MIN_SIZE = 64; + +void InitAdminParam(Admin &admin, const uint8_t* data, int32_t& pos, size_t& size, int32_t stringSize) +{ + AdminInfo fuzzAdminInfo; + fuzzAdminInfo.packageName_ = CommonFuzzer::GetString(data, pos, stringSize, size); + fuzzAdminInfo.className_ = CommonFuzzer::GetString(data, pos, stringSize, size); + fuzzAdminInfo.entInfo_.enterpriseName = CommonFuzzer::GetString(data, pos, stringSize, size); + fuzzAdminInfo.entInfo_.description = CommonFuzzer::GetString(data, pos, stringSize, size); + std::string permission = CommonFuzzer::GetString(data, pos, stringSize, size);+ + fuzzAdminInfo.permission_.push_back(permission); + ManagedEvent event = GetData(); + fuzzAdminInfo.managedEvents_.push_back(event); + fuzzAdminInfo.parentAdminName_ = CommonFuzzer::GetString(data, pos, stringSize, size); + admin.adminInfo_ = fuzzAdminInfo; +} + +// Fuzzer entry point. +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + if (data == nullptr) { + return 0; + } + if (size < MIN_SIZE) { + return 0; + } + g_data = data; + g_size = size; + g_pos = 0; + int32_t pos = 0; + int32_t stringSize = size / 13; + std::shared_ptr adminPoliciesStorageRdb = AdminPoliciesStorageRdb::GetInstance(); + int32_t userId = CommonFuzzer::GetU32Data(data); + Admin admin; + InitAdminParam(admin, data, pos, size, stringSize); + adminPoliciesStorageRdb->UpdateAdmin(userId, admin); + std::string packageName = CommonFuzzer::GetString(data, pos, stringSize, size); + std::string currentParentName = CommonFuzzer::GetString(data, pos, stringSize, size); + std::string targetParentName = CommonFuzzer::GetString(data, pos, stringSize, size); + std::string stringInfo = CommonFuzzer::GetString(data, pos, stringSize, size); + std::string info = CommonFuzzer::GetString(data, pos, stringSize, size); + std::vector infos = {info}; + EntInfo entInfo; + entInfo.enterpriseName = CommonFuzzer::GetString(data, pos, stringSize, size); + entInfo.description = CommonFuzzer::GetString(data, pos, stringSize, size); + adminPoliciesStorageRdb->UpdateEntInfo(userId, packageName, entInfo); + ManagedEvent event = GetData(); + std::vector managedEvents; + managedEvents.push_back(event); + adminPoliciesStorageRdb->UpdateManagedEvents(userId, packageName, managedEvents); + adminPoliciesStorageRdb->ReplaceAdmin(packageName, userId, admin); + adminPoliciesStorageRdb->UpdateParentName(packageName, currentParentName, targetParentName); + std::shared_ptr item = std::make_shared(admin); + return 0; +} +} // namespace EDM +} // namespace OHOS \ No newline at end of file diff --git a/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/admin_policies_storage_rdb_update_fuzzer.h b/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/admin_policies_storage_rdb_update_fuzzer.h new file mode 100644 index 0000000000000000000000000000000000000000..27a1543a9279d6d7da84c67a0882024648d23905 --- /dev/null +++ b/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/admin_policies_storage_rdb_update_fuzzer.h @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef TEST_FUZZTEST_ADMIN_POLICIES_STORAGE_RDB_UPDATE_FUZZER_H +#define TEST_FUZZTEST_ADMIN_POLICIES_STORAGE_RDB_UPDATE_FUZZER_H + +#define FUZZ_PROJECT_NAME "admin_policies_storage_rdb_update_fuzzer" + +#endif // TEST_FUZZTEST_ADMIN_POLICIES_STORAGE_RDB_UPDATE_FUZZER_H \ No newline at end of file diff --git a/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/corpus/init b/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/corpus/init new file mode 100644 index 0000000000000000000000000000000000000000..bc977bd9738ee9a70b362067f57a9c63d3adb801 --- /dev/null +++ b/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/corpus/init @@ -0,0 +1,14 @@ +# Copyright (c) 2022 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FUZZ \ No newline at end of file diff --git a/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/project.xml b/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/project.xml new file mode 100644 index 0000000000000000000000000000000000000000..85e7ef2c1cc6471e288306f6e3dcea5287a78b0e --- /dev/null +++ b/test/fuzztest/adminpoliciesstoragerdbupdate_fuzzer/project.xml @@ -0,0 +1,25 @@ + + + + + + 1000 + + 300 + + 4096 + + diff --git a/test/fuzztest/adminserviceinterface_fuzzer/admin_service_interface_fuzzer.cpp b/test/fuzztest/adminserviceinterface_fuzzer/admin_service_interface_fuzzer.cpp index c87179e19733236c9e344848929d73ee90ebd202..bf0be335d49d2fc4298d84cf2f13490ef2513842 100644 --- a/test/fuzztest/adminserviceinterface_fuzzer/admin_service_interface_fuzzer.cpp +++ b/test/fuzztest/adminserviceinterface_fuzzer/admin_service_interface_fuzzer.cpp @@ -19,12 +19,19 @@ #include "common_fuzzer.h" #include "func_code.h" #include "message_parcel.h" +#include "utils.h" namespace OHOS { namespace EDM { constexpr size_t MIN_SIZE = 5; constexpr uint32_t MIN_INTERAFCE_CODE = 1000; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/allowedappdistributiontypesplugin_fuzzer/allowed_app_distribution_types_plugin_fuzzer.cpp b/test/fuzztest/allowedappdistributiontypesplugin_fuzzer/allowed_app_distribution_types_plugin_fuzzer.cpp index 2607c233b28b5df9f1452fd2bd1f2813c4d121e7..cc016ffce72a0253cc7632d3a82404e18e06437a 100644 --- a/test/fuzztest/allowedappdistributiontypesplugin_fuzzer/allowed_app_distribution_types_plugin_fuzzer.cpp +++ b/test/fuzztest/allowedappdistributiontypesplugin_fuzzer/allowed_app_distribution_types_plugin_fuzzer.cpp @@ -36,6 +36,12 @@ namespace EDM { constexpr size_t MIN_SIZE = 12; constexpr int32_t WITHOUT_USERID = 0; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/allowedbluetoothdevicesplugin_fuzzer/allowed_bluetooth_devices_plugin_fuzzer.cpp b/test/fuzztest/allowedbluetoothdevicesplugin_fuzzer/allowed_bluetooth_devices_plugin_fuzzer.cpp index f587c11c6dcba1273edef130acc7e97e4bee13b2..d2d66f8647b821e969cdd07356f534c21ff3b9a8 100644 --- a/test/fuzztest/allowedbluetoothdevicesplugin_fuzzer/allowed_bluetooth_devices_plugin_fuzzer.cpp +++ b/test/fuzztest/allowedbluetoothdevicesplugin_fuzzer/allowed_bluetooth_devices_plugin_fuzzer.cpp @@ -31,6 +31,12 @@ constexpr int32_t WITHOUT_USERID = 0; constexpr int32_t HAS_ADMIN = 0; constexpr int32_t WITHOUT_ADMIN = 1; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/allowedusbdevicesplugin_fuzzer/allowed_usb_devices_plugin_fuzzer.cpp b/test/fuzztest/allowedusbdevicesplugin_fuzzer/allowed_usb_devices_plugin_fuzzer.cpp index f4b9cc3858a7af5b1dc7f6bb1ab3ab1cb7d9f6e7..c7ca15dbc6b889c21a75c1c7cd5494be577e389d 100644 --- a/test/fuzztest/allowedusbdevicesplugin_fuzzer/allowed_usb_devices_plugin_fuzzer.cpp +++ b/test/fuzztest/allowedusbdevicesplugin_fuzzer/allowed_usb_devices_plugin_fuzzer.cpp @@ -51,6 +51,12 @@ void DoSomethingInterestingWithAPI(const uint8_t* data, size_t size, int32_t pos plugin.OnOtherServiceStart(systemAbilityId); } +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/allowedwifilistplugin_fuzzer/allowed_wifi_list_plugin_fuzzer.cpp b/test/fuzztest/allowedwifilistplugin_fuzzer/allowed_wifi_list_plugin_fuzzer.cpp index f65ad955ea6f8f40ce7c5a22bf9d93c506fa5c3e..abcd5bc25289bee37c458e251429ca6ab69e3ce9 100644 --- a/test/fuzztest/allowedwifilistplugin_fuzzer/allowed_wifi_list_plugin_fuzzer.cpp +++ b/test/fuzztest/allowedwifilistplugin_fuzzer/allowed_wifi_list_plugin_fuzzer.cpp @@ -38,6 +38,12 @@ constexpr size_t MIN_SIZE = 15; constexpr int32_t WITHOUT_USERID = 0; constexpr int32_t WIFI_LIST_SIZE = 1; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/common/src/common_fuzzer.cpp b/test/fuzztest/common/src/common_fuzzer.cpp index 3d567d74a7caaa08978710a3dfe2d6ac151a0ef0..bccdc1664ec43c0a87a88704829151deec126c9e 100644 --- a/test/fuzztest/common/src/common_fuzzer.cpp +++ b/test/fuzztest/common/src/common_fuzzer.cpp @@ -170,7 +170,7 @@ const bool REGISTER_INSTALL_LOCAL_ENTERPRISE_APP_ENABLED_PLUGIN = void CommonFuzzer::OnRemoteRequestFuzzerTest(uint32_t code, const uint8_t* data, size_t size, MessageParcel& parcel) { - TEST::Utils::SetEdmInitialEnv(); + TEST::Utils::SetUid(); sptr enterpriseDeviceMgrAbility = EnterpriseDeviceMgrAbility::GetInstance(); enterpriseDeviceMgrAbility->OnStart(); @@ -178,7 +178,7 @@ void CommonFuzzer::OnRemoteRequestFuzzerTest(uint32_t code, const uint8_t* data, MessageOption option; enterpriseDeviceMgrAbility->OnRemoteRequest(code, parcel, reply, option); - TEST::Utils::ResetTokenTypeAndUid(); + TEST::Utils::ResetUid(); } void CommonFuzzer::SetParcelContent(MessageParcel& parcel, const uint8_t* data, size_t size) diff --git a/test/fuzztest/disallowaddosaccountbyuserplugin_fuzzer/disallow_add_os_account_by_user_plugin_fuzzer.cpp b/test/fuzztest/disallowaddosaccountbyuserplugin_fuzzer/disallow_add_os_account_by_user_plugin_fuzzer.cpp index 6f978d7fce1f05004ca719ac71ef7a652771a0e0..637b20552edee378b89ab17cc408cc89f45bd430 100644 --- a/test/fuzztest/disallowaddosaccountbyuserplugin_fuzzer/disallow_add_os_account_by_user_plugin_fuzzer.cpp +++ b/test/fuzztest/disallowaddosaccountbyuserplugin_fuzzer/disallow_add_os_account_by_user_plugin_fuzzer.cpp @@ -29,6 +29,12 @@ namespace EDM { constexpr size_t MIN_SIZE = 16; constexpr size_t WITHOUT_USERID = 0; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/disallowedbluetoothdevicesplugin_fuzzer/disallowed_bluetooth_devices_plugin_fuzzer.cpp b/test/fuzztest/disallowedbluetoothdevicesplugin_fuzzer/disallowed_bluetooth_devices_plugin_fuzzer.cpp index b998b00632a23974c236488c1fe09ce537274c53..c0f39303d32276c89138478af4fc905b689ac6d0 100644 --- a/test/fuzztest/disallowedbluetoothdevicesplugin_fuzzer/disallowed_bluetooth_devices_plugin_fuzzer.cpp +++ b/test/fuzztest/disallowedbluetoothdevicesplugin_fuzzer/disallowed_bluetooth_devices_plugin_fuzzer.cpp @@ -31,6 +31,12 @@ constexpr int32_t WITHOUT_USERID = 0; constexpr int32_t HAS_ADMIN = 0; constexpr int32_t WITHOUT_ADMIN = 1; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/disallowednearlinkprotocolsplugin_fuzzer/disallowed_nearlink_protocols_plugin_fuzzer.cpp b/test/fuzztest/disallowednearlinkprotocolsplugin_fuzzer/disallowed_nearlink_protocols_plugin_fuzzer.cpp index f80e0cb61a8b5d843c6a7988dd53aad23c939b20..3d13d8ba1474035728063fa27fad4cffb9a8ffba 100644 --- a/test/fuzztest/disallowednearlinkprotocolsplugin_fuzzer/disallowed_nearlink_protocols_plugin_fuzzer.cpp +++ b/test/fuzztest/disallowednearlinkprotocolsplugin_fuzzer/disallowed_nearlink_protocols_plugin_fuzzer.cpp @@ -19,6 +19,7 @@ #include "common_fuzzer.h" #include "message_parcel.h" +#include "utils.h" namespace OHOS { namespace EDM { diff --git a/test/fuzztest/disallowedrunningbundlesplugin_fuzzer/disallowed_running_bundles_plugin_fuzzer.cpp b/test/fuzztest/disallowedrunningbundlesplugin_fuzzer/disallowed_running_bundles_plugin_fuzzer.cpp index 4920f6dbb4c7e0970cf385434281248e91af6014..2cda565c1a71c4fea7b886c468d77f0b5ad52503 100644 --- a/test/fuzztest/disallowedrunningbundlesplugin_fuzzer/disallowed_running_bundles_plugin_fuzzer.cpp +++ b/test/fuzztest/disallowedrunningbundlesplugin_fuzzer/disallowed_running_bundles_plugin_fuzzer.cpp @@ -34,6 +34,12 @@ constexpr size_t MIN_SIZE = 24; constexpr size_t HAS_USERID = 1; constexpr int32_t USER_ID = 100; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/disallowedsimplugin_fuzzer/disallowed_sim_plugin_fuzzer.cpp b/test/fuzztest/disallowedsimplugin_fuzzer/disallowed_sim_plugin_fuzzer.cpp index 2d8915297750f2c01fb52bbe69e2f0e809f1c0f1..d4dabc544bcdd4a3e49a14d4e8cfc7770b88e863 100644 --- a/test/fuzztest/disallowedsimplugin_fuzzer/disallowed_sim_plugin_fuzzer.cpp +++ b/test/fuzztest/disallowedsimplugin_fuzzer/disallowed_sim_plugin_fuzzer.cpp @@ -37,6 +37,12 @@ namespace EDM { constexpr size_t MIN_SIZE = 16; constexpr int32_t WITHOUT_USERID = 0; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/disallowedwifilistplugin_fuzzer/disallowed_wifi_list_plugin_fuzzer.cpp b/test/fuzztest/disallowedwifilistplugin_fuzzer/disallowed_wifi_list_plugin_fuzzer.cpp index 0add927fad767ea9f1e31edc6025c21a986002db..70d6250eb988b66405d9ef1a2f8cb3aaf24999df 100644 --- a/test/fuzztest/disallowedwifilistplugin_fuzzer/disallowed_wifi_list_plugin_fuzzer.cpp +++ b/test/fuzztest/disallowedwifilistplugin_fuzzer/disallowed_wifi_list_plugin_fuzzer.cpp @@ -38,6 +38,12 @@ constexpr size_t MIN_SIZE = 15; constexpr int32_t WITHOUT_USERID = 0; constexpr int32_t WIFI_LIST_SIZE = 1; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/disallowmobiledataplugin_fuzzer/disallow_mobile_data_plugin_fuzzer.cpp b/test/fuzztest/disallowmobiledataplugin_fuzzer/disallow_mobile_data_plugin_fuzzer.cpp index fbc76e14c68a3e84b0c4b1f4c80c1297a0db0b12..d52dc11340b1dfe9f95fe1a66015d690d77a29fe 100644 --- a/test/fuzztest/disallowmobiledataplugin_fuzzer/disallow_mobile_data_plugin_fuzzer.cpp +++ b/test/fuzztest/disallowmobiledataplugin_fuzzer/disallow_mobile_data_plugin_fuzzer.cpp @@ -36,6 +36,12 @@ namespace EDM { constexpr size_t MIN_SIZE = 16; constexpr size_t WITHOUT_USERID = 0; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + void DoSomethingInterestingWithAPI(const uint8_t* data, size_t size, int32_t pos, int32_t stringSize) { DisallowMobileDataPlugin plugin; diff --git a/test/fuzztest/edmplugin_fuzzer/edm_plugin_fuzzer.cpp b/test/fuzztest/edmplugin_fuzzer/edm_plugin_fuzzer.cpp index 999e18151091ba9e14ed46610b7485656c9ceb60..3cb7c89364e3862debc8a7478be836e119438345 100644 --- a/test/fuzztest/edmplugin_fuzzer/edm_plugin_fuzzer.cpp +++ b/test/fuzztest/edmplugin_fuzzer/edm_plugin_fuzzer.cpp @@ -18,12 +18,19 @@ #include "common_fuzzer.h" #include "edm_ipc_interface_code.h" #include "func_code.h" +#include "utils.h" namespace OHOS { namespace EDM { constexpr size_t MIN_SIZE = 4; constexpr uint32_t MAX_EDM_INTERFACE_CODE = 1000; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/enterprisedevicemgrability_fuzzer/enterprise_device_mgr_ability_fuzzer.cpp b/test/fuzztest/enterprisedevicemgrability_fuzzer/enterprise_device_mgr_ability_fuzzer.cpp index 073070a53d702d083cfed7008b6f54246f0e8807..c777afae1bcbb1d4e320ccd97a69d84f57af5464 100644 --- a/test/fuzztest/enterprisedevicemgrability_fuzzer/enterprise_device_mgr_ability_fuzzer.cpp +++ b/test/fuzztest/enterprisedevicemgrability_fuzzer/enterprise_device_mgr_ability_fuzzer.cpp @@ -31,6 +31,7 @@ #include "permission_checker.h" #include "securec.h" #include "utils.h" +#include "parameters.h" namespace OHOS { namespace EDM { @@ -38,6 +39,13 @@ constexpr size_t MIN_SIZE = 64; const std::string FIRMWARE_EVENT_INFO_NAME = "version"; const std::string FIRMWARE_EVENT_INFO_TYPE = "packageType"; const std::string FIRMWARE_EVENT_INFO_CHECK_TIME = "firstReceivedTime"; +const std::string PARAM_EDM_ENABLE = "persist.edm.edm_enable"; + +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} EventFwk::CommonEventData getCommonEventData(const uint8_t* data, size_t size) { @@ -89,7 +97,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) int32_t pos = 0; int32_t stringSize = (size - pos) / 5; - TEST::Utils::SetEdmInitialEnv(); + TEST::Utils::SetUid(); sptr enterpriseDeviceMgrAbility = EnterpriseDeviceMgrAbility::GetInstance(); enterpriseDeviceMgrAbility->OnStart(); EventFwk::CommonEventData eventData = getCommonEventData(data, size); @@ -122,7 +130,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) const std::string policyValue(reinterpret_cast(data), size); enterpriseDeviceMgrAbility->RemoveAdminItem(adminName, policyName, policyValue, userId); std::string bundleName(reinterpret_cast(data), size); - TEST::Utils::ResetTokenTypeAndUid(); + TEST::Utils::ResetUid(); PluginManager::GetInstance()->DumpPlugin(); std::string abilityName = CommonFuzzer::GetString(data, pos, stringSize, size); @@ -184,6 +192,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) PermissionChecker::GetInstance()->CheckAndUpdatePermission(adminPtr, 0, fuzzString, userId); PermissionChecker::GetInstance()->GetCurrentUserId(); PermissionChecker::GetInstance()->CheckSpecialPolicyCallQuery(userId); + + system::SetParameter(PARAM_EDM_ENABLE, "false"); return 0; } } // namespace EDM diff --git a/test/fuzztest/enterprisedevicemgrstubmock_fuzzer/enterprise_device_mgr_stub_mock_fuzzer.cpp b/test/fuzztest/enterprisedevicemgrstubmock_fuzzer/enterprise_device_mgr_stub_mock_fuzzer.cpp index 29a65bf5c1a6ba4fc09f671e5ba8b344cb2c4aab..380134062a30e7bb4f7d76f11fd641f086bf0138 100644 --- a/test/fuzztest/enterprisedevicemgrstubmock_fuzzer/enterprise_device_mgr_stub_mock_fuzzer.cpp +++ b/test/fuzztest/enterprisedevicemgrstubmock_fuzzer/enterprise_device_mgr_stub_mock_fuzzer.cpp @@ -18,11 +18,18 @@ #include "common_fuzzer.h" #include "func_code.h" #include "message_parcel.h" +#include "utils.h" namespace OHOS { namespace EDM { constexpr size_t MIN_SIZE = 6; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { if (data == nullptr) { diff --git a/test/fuzztest/firewallruleplugin_fuzzer/firewall_rule_plugin_fuzzer.cpp b/test/fuzztest/firewallruleplugin_fuzzer/firewall_rule_plugin_fuzzer.cpp index 0e8aaa659e8c00583ea09ddf3e4e1374c1d929e7..60f9e5d82743749c2ea9794bc3d8f52577e8bf9e 100644 --- a/test/fuzztest/firewallruleplugin_fuzzer/firewall_rule_plugin_fuzzer.cpp +++ b/test/fuzztest/firewallruleplugin_fuzzer/firewall_rule_plugin_fuzzer.cpp @@ -24,6 +24,7 @@ #include "ienterprise_device_mgr.h" #include "iptables_utils.h" #include "message_parcel.h" +#include "utils.h" namespace OHOS { namespace EDM { @@ -32,6 +33,12 @@ constexpr int32_t WITHOUT_USERID = 0; constexpr int32_t MAX_ENUM_LENGTH = 2; constexpr int32_t MAX_PROTOCOL_LENGTH = 4; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/getbluetoothinfoplugin_fuzzer/get_bluetooth_info_plugin_fuzzer.cpp b/test/fuzztest/getbluetoothinfoplugin_fuzzer/get_bluetooth_info_plugin_fuzzer.cpp index 6effed219cea83355551ce27248745ef56ea4dd9..bb6d72a953735a2a6b83cc1e689acec6665b69a6 100644 --- a/test/fuzztest/getbluetoothinfoplugin_fuzzer/get_bluetooth_info_plugin_fuzzer.cpp +++ b/test/fuzztest/getbluetoothinfoplugin_fuzzer/get_bluetooth_info_plugin_fuzzer.cpp @@ -29,6 +29,12 @@ namespace EDM { constexpr size_t MIN_SIZE = 16; constexpr size_t WITHOUT_USERID = 0; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/getdeviceinfoplugin_fuzzer/get_device_info_plugin_fuzzer.cpp b/test/fuzztest/getdeviceinfoplugin_fuzzer/get_device_info_plugin_fuzzer.cpp index b6a4b388ffd514c230c6514d5ac5792d5b85892a..566d05da702c53484fbc186702e13b7ef1c53e74 100644 --- a/test/fuzztest/getdeviceinfoplugin_fuzzer/get_device_info_plugin_fuzzer.cpp +++ b/test/fuzztest/getdeviceinfoplugin_fuzzer/get_device_info_plugin_fuzzer.cpp @@ -30,6 +30,12 @@ constexpr size_t MIN_SIZE = 16; constexpr size_t WITHOUT_USERID = 0; constexpr const char *WITHOUT_PERMISSION_TAG = ""; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/installlocalenterpriseappenabledplugin_fuzzer/install_local_enterprise_app_enabled_plugin_fuzzer.cpp b/test/fuzztest/installlocalenterpriseappenabledplugin_fuzzer/install_local_enterprise_app_enabled_plugin_fuzzer.cpp index 52a1525e524fdf4b799e0b514e031e14f39d9190..1d257820f930a11078642688e988599a6512edd7 100644 --- a/test/fuzztest/installlocalenterpriseappenabledplugin_fuzzer/install_local_enterprise_app_enabled_plugin_fuzzer.cpp +++ b/test/fuzztest/installlocalenterpriseappenabledplugin_fuzzer/install_local_enterprise_app_enabled_plugin_fuzzer.cpp @@ -29,7 +29,13 @@ namespace EDM { constexpr size_t MIN_SIZE = 16; constexpr size_t WITHOUT_USERID = 0; constexpr const char *WITHOUT_PERMISSION_TAG = ""; - + +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/installplugin_fuzzer/install_plugin_fuzzer.cpp b/test/fuzztest/installplugin_fuzzer/install_plugin_fuzzer.cpp index fe59d25b41c92373f6e46bdb4ecb2a9abdfdc7a3..0813042a1bb44a4b01a9d2965e65363e9035aa11 100644 --- a/test/fuzztest/installplugin_fuzzer/install_plugin_fuzzer.cpp +++ b/test/fuzztest/installplugin_fuzzer/install_plugin_fuzzer.cpp @@ -29,6 +29,12 @@ namespace EDM { constexpr size_t MIN_SIZE = 16; constexpr int32_t WITHOUT_USERID = 0; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/iptablesruleplugin_fuzzer/iptables_rule_plugin_fuzzer.cpp b/test/fuzztest/iptablesruleplugin_fuzzer/iptables_rule_plugin_fuzzer.cpp index a7771a9092e8d0501861bf03c16dcf61856e7e26..6462fb6ad819d7cffe24690c835cc4951c96b6c8 100644 --- a/test/fuzztest/iptablesruleplugin_fuzzer/iptables_rule_plugin_fuzzer.cpp +++ b/test/fuzztest/iptablesruleplugin_fuzzer/iptables_rule_plugin_fuzzer.cpp @@ -24,6 +24,7 @@ #include "ienterprise_device_mgr.h" #include "iptables_utils.h" #include "message_parcel.h" +#include "utils.h" namespace OHOS { namespace EDM { @@ -32,6 +33,12 @@ constexpr int32_t WITHOUT_USERID = 0; constexpr int32_t MAX_ENUM_LENGTH = 2; constexpr int32_t MAX_PROTOCOL_LENGTH = 4; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/kioskfeatureplugin_fuzzer/kiosk_feature_plugin_fuzzer.cpp b/test/fuzztest/kioskfeatureplugin_fuzzer/kiosk_feature_plugin_fuzzer.cpp index fc306fcef4af8d1c67fa86e5a32d9635c55d5ec0..5b88a539236a6b051b8a999395734470935d7399 100644 --- a/test/fuzztest/kioskfeatureplugin_fuzzer/kiosk_feature_plugin_fuzzer.cpp +++ b/test/fuzztest/kioskfeatureplugin_fuzzer/kiosk_feature_plugin_fuzzer.cpp @@ -31,6 +31,12 @@ constexpr size_t WITHOUT_USERID = 0; constexpr const char *WITHOUT_PERMISSION_TAG = ""; constexpr int32_t RANGE_DATA = 10; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/manageautostartappsplugin_fuzzer/manage_auto_start_apps_plugin_fuzzer.cpp b/test/fuzztest/manageautostartappsplugin_fuzzer/manage_auto_start_apps_plugin_fuzzer.cpp index 3fb2a2de342e5f3651f6db3f87d1c41cff12e835..7840313851550e992601fbcf45b7e58431a5edbb 100644 --- a/test/fuzztest/manageautostartappsplugin_fuzzer/manage_auto_start_apps_plugin_fuzzer.cpp +++ b/test/fuzztest/manageautostartappsplugin_fuzzer/manage_auto_start_apps_plugin_fuzzer.cpp @@ -29,6 +29,12 @@ namespace EDM { constexpr size_t MIN_SIZE = 24; constexpr int32_t WITHOUT_USERID = 0; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/powerpolicyplugin_fuzzer/power_policy_plugin_fuzzer.cpp b/test/fuzztest/powerpolicyplugin_fuzzer/power_policy_plugin_fuzzer.cpp index 80b9503df3e4465686664fc2df446bb12597c5d2..9bc3292ab318c49261f07652bb5de510fd421e76 100644 --- a/test/fuzztest/powerpolicyplugin_fuzzer/power_policy_plugin_fuzzer.cpp +++ b/test/fuzztest/powerpolicyplugin_fuzzer/power_policy_plugin_fuzzer.cpp @@ -34,6 +34,12 @@ constexpr size_t MIN_SIZE = 24; constexpr int32_t WITHOUT_USERID = 0; constexpr uint32_t MAX_POWER_POLICY_ACTION_ENUM = 5; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/setapnplugin_fuzzer/set_apn_plugin_fuzzer.cpp b/test/fuzztest/setapnplugin_fuzzer/set_apn_plugin_fuzzer.cpp index bdb9c30e7f207e346b8a8a336fb0d4d8735f9cca..2332cf6bc1d75882f43bc3b71917ddf240eaae3b 100644 --- a/test/fuzztest/setapnplugin_fuzzer/set_apn_plugin_fuzzer.cpp +++ b/test/fuzztest/setapnplugin_fuzzer/set_apn_plugin_fuzzer.cpp @@ -51,6 +51,12 @@ enum ApnGetFlag { QUERYINFO }; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + static void GenerateSetData(const uint8_t* data, int32_t& pos, int32_t stringSize, size_t size, MessageParcel &parcel) { uint32_t flag = CommonFuzzer::GetU32Data(data) % SET_FLAG_FACTOR; diff --git a/test/fuzztest/setbrowserpoliciesplugin_fuzzer/set_browser_policies_plugin_fuzzer.cpp b/test/fuzztest/setbrowserpoliciesplugin_fuzzer/set_browser_policies_plugin_fuzzer.cpp index d07309c4741cd7e16b7591f440514986f60c210b..694b3a2c01723c2dcc86e13a96ca5375b89a3988 100644 --- a/test/fuzztest/setbrowserpoliciesplugin_fuzzer/set_browser_policies_plugin_fuzzer.cpp +++ b/test/fuzztest/setbrowserpoliciesplugin_fuzzer/set_browser_policies_plugin_fuzzer.cpp @@ -78,6 +78,12 @@ void SetParcelContent(MessageParcel &parcel, uint32_t operateType, } } +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/telephonycallpolicyplugin_fuzzer/telephony_call_policy_plugin_fuzzer.cpp b/test/fuzztest/telephonycallpolicyplugin_fuzzer/telephony_call_policy_plugin_fuzzer.cpp index 9a1e265de023fdbf74da535a4aae7133a82119c2..14c22edb1e05907da3dccd78ba8b8de7e1cb2930 100644 --- a/test/fuzztest/telephonycallpolicyplugin_fuzzer/telephony_call_policy_plugin_fuzzer.cpp +++ b/test/fuzztest/telephonycallpolicyplugin_fuzzer/telephony_call_policy_plugin_fuzzer.cpp @@ -64,6 +64,12 @@ void CheckPrivateFunction(const uint8_t* data, const size_t size, int32_t &pos) plugin.OnOtherServiceStart(userId); } +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/turnonoffmobiledataplugin_fuzzer/turnonoff_mobile_data_plugin_fuzzer.cpp b/test/fuzztest/turnonoffmobiledataplugin_fuzzer/turnonoff_mobile_data_plugin_fuzzer.cpp index 2a1bdc503558937e9d7c0b715be8402feb7ca018..4771a0a743c39b58df01d6acbfbc0f9d5ff23c9b 100644 --- a/test/fuzztest/turnonoffmobiledataplugin_fuzzer/turnonoff_mobile_data_plugin_fuzzer.cpp +++ b/test/fuzztest/turnonoffmobiledataplugin_fuzzer/turnonoff_mobile_data_plugin_fuzzer.cpp @@ -30,6 +30,12 @@ namespace EDM { constexpr size_t MIN_SIZE = 16; constexpr size_t WITHOUT_USERID = 0; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/usbreadonlyplugin_fuzzer/usb_read_only_plugin_fuzzer.cpp b/test/fuzztest/usbreadonlyplugin_fuzzer/usb_read_only_plugin_fuzzer.cpp index 57db1870563f529e05c6e004e9647cf3aec108db..e2f5134ac7a6987ec96461b2f5f5249c48ad1c7d 100644 --- a/test/fuzztest/usbreadonlyplugin_fuzzer/usb_read_only_plugin_fuzzer.cpp +++ b/test/fuzztest/usbreadonlyplugin_fuzzer/usb_read_only_plugin_fuzzer.cpp @@ -32,6 +32,12 @@ namespace EDM { constexpr size_t MIN_SIZE = 16; constexpr int32_t WITHOUT_USERID = 0; +extern "C" int LLVMFuzzerInitialize(const uint8_t* data, size_t size) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/fuzztest/usercertplugin_fuzzer/user_cert_plugin_fuzzer.cpp b/test/fuzztest/usercertplugin_fuzzer/user_cert_plugin_fuzzer.cpp index 19a711f8e5e225c4ccc504a386adb71adb37438e..57a91c613063d92f72c9573a2277058a5c4b8f5f 100644 --- a/test/fuzztest/usercertplugin_fuzzer/user_cert_plugin_fuzzer.cpp +++ b/test/fuzztest/usercertplugin_fuzzer/user_cert_plugin_fuzzer.cpp @@ -29,6 +29,12 @@ namespace EDM { constexpr size_t MIN_SIZE = 24; constexpr size_t WITHOUT_USERID = 0; +extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) +{ + TEST::Utils::SetEdmPermissions(); + return 0; +} + // Fuzzer entry point. extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { diff --git a/test/unittest/utils/include/utils.h b/test/unittest/utils/include/utils.h index 261c94029a22e0df0ada5fb9e77a8b87e47a4d49..8c3acaef4342adc61f4467e643607930ea3d86d1 100644 --- a/test/unittest/utils/include/utils.h +++ b/test/unittest/utils/include/utils.h @@ -40,6 +40,9 @@ public: static void SetEdmServiceDisable(); static void SetBluetoothEnable(); static void SetBluetoothDisable(); + static void SetEdmPermissions(); + static void SetUid(); + static void ResetUid(); private: static uint64_t selfTokenId_; diff --git a/test/unittest/utils/src/utils.cpp b/test/unittest/utils/src/utils.cpp index c7d893d6cd31e2f01843faebac27cd28a4170b7c..76d37ce6f4b88237429108b1ba5932f69df1e2bd 100644 --- a/test/unittest/utils/src/utils.cpp +++ b/test/unittest/utils/src/utils.cpp @@ -98,6 +98,12 @@ void Utils::SetNativeTokenTypeAndPermissions(const char* permissions[], int size } void Utils::SetEdmInitialEnv() +{ + SetEdmPermissions(); + seteuid(Utils::EDM_UID); +} + +void Utils::SetEdmPermissions() { selfTokenId_ = GetSelfTokenID(); const char* permissions[] = { @@ -148,9 +154,18 @@ void Utils::SetEdmInitialEnv() PERMISSION_MANAGE_VPN.c_str() }; Utils::SetNativeTokenTypeAndPermissions(permissions, sizeof(permissions) / sizeof(permissions[0])); +} + +void Utils::SetUid() +{ seteuid(Utils::EDM_UID); } +void Utils::ResetUid() +{ + seteuid(Utils::ROOT_UID); +} + void Utils::ResetTokenTypeAndUid() { seteuid(Utils::ROOT_UID);