1 /* 2 * Copyright (c) 2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "disallow_power_long_press_plugin_fuzzer.h" 17 18 #include <system_ability_definition.h> 19 20 #define protected public 21 #define private public 22 #include "disallow_power_long_press_plugin.h" 23 #undef protected 24 #undef private 25 #include "common_fuzzer.h" 26 #include "edm_ipc_interface_code.h" 27 #include "ienterprise_device_mgr.h" 28 #include "func_code.h" 29 #include "message_parcel.h" 30 #include "utils.h" 31 32 namespace OHOS { 33 namespace EDM { 34 constexpr size_t MIN_SIZE = 4; 35 36 // Fuzzer entry point. LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)37extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) 38 { 39 if (data == nullptr) { 40 return 0; 41 } 42 if (size < MIN_SIZE) { 43 return 0; 44 } 45 46 DisallowPowerLongPressPlugin plugin; 47 int32_t userId = CommonFuzzer::GetU32Data(data); 48 plugin.SetOtherModulePolicy(*reinterpret_cast<const bool *>(data), userId); 49 plugin.RemoveOtherModulePolicy(userId); 50 return 0; 51 } 52 } // namespace EDM 53 } // namespace OHOS