diff --git a/test/fuzztest/BUILD.gn b/test/fuzztest/BUILD.gn index 3d03d68a6c0b6467dfc324249d1845b6e129e1b4..e355d6fb6ea8c82f6830f2fdb27d90ee16d8b605 100644 --- a/test/fuzztest/BUILD.gn +++ b/test/fuzztest/BUILD.gn @@ -40,6 +40,7 @@ group("test") { "fillinputdevicewithvirtualcapability_fuzzer:fuzztest", "findtouchstate_fuzzer:fuzztest", "functionkeystate_fuzzer:fuzztest", + "getallmmisubscribedevents_fuzzer:fuzztest", "getallnapstatusdata_fuzzer:fuzztest", "getallsystemhotkeys_fuzzer:fuzztest", "getdevice_fuzzer:fuzztest", @@ -70,7 +71,16 @@ group("test") { "handleanrstate_fuzzer:fuzztest", "hasiremitter_fuzzer:fuzztest", "initcommoneventsubscriber_fuzzer:fuzztest", - "injectevent_fuzzer:fuzztest", + "injecteventsetdeviceid_fuzzer:fuzztest", + "injecteventsetdisplayxy_fuzzer:fuzztest", + "injecteventsetdowntime_fuzzer:fuzztest", + "injecteventsetkeyaction_fuzzer:fuzztest", + "injecteventsetkeycode_fuzzer:fuzztest", + "injecteventsetkeyitemcode_fuzzer:fuzztest", + "injecteventsetpointerid_fuzzer:fuzztest", + "injecteventsetpointer_fuzzer:fuzztest", + "injecteventsetpressed_fuzzer:fuzztest", + "injecteventsetpressure_fuzzer:fuzztest", "injectionrequest_fuzzer:fuzztest", "injectkeyevent_fuzzer:fuzztest", "injectpointerevent_fuzzer:fuzztest", @@ -78,7 +88,6 @@ group("test") { "inputdevice_fuzzer:fuzztest", "inputdevcallback_fuzzer:fuzztest", "inputdeviceconfig_fuzzer:fuzztest", - "inputdevicemanagerone_fuzzer:fuzztest", "inputevent2_fuzzer:fuzztest", "inputevent3_fuzzer:fuzztest", "inputevent4_fuzzer:fuzztest", @@ -86,10 +95,13 @@ group("test") { "inputgetinputdevice_fuzzer:fuzztest", "inputisremote_fuzzer:fuzztest", "inputkeyboard_fuzzer:fuzztest", + "inputkeyboardtype_fuzzer:fuzztest", "inputonenable_fuzzer:fuzztest", "inputpointerdevice_fuzzer:fuzztest", "inputsupportkeys_fuzzer:fuzztest", "inputsupportkey_fuzzer:fuzztest", + "inputvendorconfig_fuzzer:fuzztest", + "inputvirtualdeviceid_fuzzer:fuzztest", "isinputdeviceenable_fuzzer:fuzztest", "isfocusedsession_fuzzer:fuzztest", "islocaldevice_fuzzer:fuzztest", @@ -168,7 +180,6 @@ group("test") { "setmouseflag_fuzzer:fuzztest", "setmousehotspot_fuzzer:fuzztest", "setmouseprimarybutton_fuzzer:fuzztest", - "setmousescrollrows_fuzzer:fuzztest", "setmoveeventfilters_fuzzer:fuzztest", "setmultiwindowscreenid_fuzzer:fuzztest", "setnapstatus_fuzzer:fuzztest", @@ -206,7 +217,42 @@ group("test") { "stubgettouchpadswipeswitch_fuzzer:fuzztest", "stubgettouchpadtapswitch_fuzzer:fuzztest", "stubgetwindowpid_fuzzer:fuzztest", - "stubhandleallocsocketfd_fuzzer:fuzztest", + "stubhandleaddability_fuzzer:fuzztest", + "stubhandleaddepoll_fuzzer:fuzztest", + "stubhandleaddvirtual_fuzzer:fuzztest", + "stubhandlecheckinput_fuzzer:fuzztest", + "stubhandleclicktype_fuzzer:fuzztest", + "stubhandlecurrentuser_fuzzer:fuzztest", + "stubhandlecursorstats_fuzzer:fuzztest", + "stubhandledelepoll_fuzzer:fuzztest", + "stubhandledownduration_fuzzer:fuzztest", + "stubhandledump_fuzzer:fuzztest", + "stubhandlegetkbtype_fuzzer:fuzztest", + "stubhandlegetkeystate_fuzzer:fuzztest", + "stubhandlekeyevent_fuzzer:fuzztest", + "stubhandlekeystate_fuzzer:fuzztest", + "stubhandlemapdata_fuzzer:fuzztest", + "stubhandlemarkevent_fuzzer:fuzztest", + "stubhandlemarkprocessed_fuzzer:fuzztest", + "stubhandlemovemouse_fuzzer:fuzztest", + "stubhandleongetdeviceids_fuzzer:fuzztest", + "stubhandleongetdevice_fuzzer:fuzztest", + "stubhandleonsupportkeys_fuzzer:fuzztest", + "stubhandlepinchswitch_fuzzer:fuzztest", + "stubhandlepointerevent_fuzzer:fuzztest", + "stubhandlepointerspeed_fuzzer:fuzztest", + "stubhandlepointlocation_fuzzer:fuzztest", + "stubhandleremoveinput_fuzzer:fuzztest", + "stubhandlerotateswitch_fuzzer:fuzztest", + "stubhandlescrolldirection_fuzzer:fuzztest", + "stubhandlescrollrows_fuzzer:fuzztest", + "stubhandlesetbind_fuzzer:fuzztest", + "stubhandlesetkeyboard_fuzzer:fuzztest", + "stubhandlesetmouseicon_fuzzer:fuzztest", + "stubhandleswipeswitch_fuzzer:fuzztest", + "stubhandleswitchevent_fuzzer:fuzztest", + "stubhandletapswitch_fuzzer:fuzztest", + "stubhandlewindowpid_fuzzer:fuzztest", "stubinjectkeyevent_fuzzer:fuzztest", "stubinjectpointerevent_fuzzer:fuzztest", "stubispointervisible_fuzzer:fuzztest", diff --git a/test/fuzztest/injectevent_fuzzer/injectevent_fuzzer.cpp b/test/fuzztest/injectevent_fuzzer/injectevent_fuzzer.cpp deleted file mode 100644 index e34e5772303034cbd7d1e1ad6f80553d69be2001..0000000000000000000000000000000000000000 --- a/test/fuzztest/injectevent_fuzzer/injectevent_fuzzer.cpp +++ /dev/null @@ -1,184 +0,0 @@ -/* - * 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. - */ - -#include "injectevent_fuzzer.h" -#include "input_manager.h" -#include "define_multimodal.h" -#include "mmi_service.h" -#include "mmi_log.h" - -namespace OHOS { -namespace MMI { - -template -size_t GetObject(T &object, const uint8_t *data, size_t size) -{ - size_t objectNum = sizeof(object); - if (objectNum > size) { - return 0; - } - errno_t ret = memcpy_s(&object, objectNum, data, objectNum); - if (ret != EOK) { - return 0; - } - return objectNum; -} - -bool InjectKeyEvent(const uint8_t* data, const size_t size, size_t &startPos) -{ - auto injectDownEvent = KeyEvent::Create(); - CHKPF(injectDownEvent); - int32_t keyCode; - CHECKSIZE(startPos, size); - startPos += GetObject(keyCode, data + startPos, size - startPos); - injectDownEvent->SetKeyCode(keyCode); - injectDownEvent->SetKeyAction(KeyEvent::KEY_ACTION_DOWN); - int64_t downTime; - CHECKSIZE(startPos, size); - startPos += GetObject(downTime, data + startPos, size - startPos); - KeyEvent::KeyItem kitDown; - kitDown.SetDownTime(downTime); - int32_t keyCodePressed; - CHECKSIZE(startPos, size); - startPos += GetObject(keyCodePressed, data + startPos, size - startPos); - kitDown.SetKeyCode(keyCodePressed); - kitDown.SetPressed(true); - injectDownEvent->AddPressedKeyItems(kitDown); - InputManager::GetInstance()->SimulateInputEvent(injectDownEvent); - - auto injectUpEvent = KeyEvent::Create(); - CHKPF(injectUpEvent); - CHECKSIZE(startPos, size); - startPos += GetObject(downTime, data + startPos, size - startPos); - KeyEvent::KeyItem kitUp; - kitUp.SetDownTime(downTime); - kitUp.SetKeyCode(keyCodePressed); - kitUp.SetPressed(false); - injectUpEvent->SetKeyCode(keyCode); - injectUpEvent->SetKeyAction(KeyEvent::KEY_ACTION_UP); - injectUpEvent->RemoveReleasedKeyItems(kitUp); - InputManager::GetInstance()->SimulateInputEvent(injectUpEvent); - return true; -} - -bool InjectTouchEvent(const uint8_t* data, const size_t size, size_t &startPos) -{ - auto pointerDownEvent = PointerEvent::Create(); - CHKPF(pointerDownEvent); - PointerEvent::PointerItem downitem; - downitem.SetPointerId(0); - int32_t physicalX; - CHECKSIZE(startPos, size); - startPos += GetObject(physicalX, data + startPos, size - startPos); - downitem.SetDisplayX(physicalX); - int32_t physicalY; - CHECKSIZE(startPos, size); - startPos += GetObject(physicalY, data + startPos, size - startPos); - downitem.SetDisplayY(physicalY); - int32_t pressure; - CHECKSIZE(startPos, size); - startPos += GetObject(pressure, data + startPos, size - startPos); - downitem.SetPressure(pressure); - downitem.SetDeviceId(1); - pointerDownEvent->AddPointerItem(downitem); - pointerDownEvent->SetId(std::numeric_limits::max()); - pointerDownEvent->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); - pointerDownEvent->SetPointerId(0); - pointerDownEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); - MMI_HILOGD("Call InputManager::InjectTouchEvent"); - InputManager::GetInstance()->SimulateInputEvent(pointerDownEvent); - - auto pointerUpEvent = PointerEvent::Create(); - CHKPF(pointerUpEvent); - PointerEvent::PointerItem upitem; - upitem.SetPointerId(0); - upitem.SetDisplayX(physicalX); - upitem.SetDisplayY(physicalY); - upitem.SetPressure(pressure); - upitem.SetDeviceId(1); - pointerUpEvent->AddPointerItem(upitem); - pointerUpEvent->SetId(std::numeric_limits::max()); - pointerUpEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UP); - pointerUpEvent->SetPointerId(0); - pointerUpEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); - MMI_HILOGD("Call InputManager::InjectTouchEvent"); - InputManager::GetInstance()->SimulateInputEvent(pointerUpEvent); - return true; -} - -bool InjectMouseEvent(const uint8_t* data, const size_t size, size_t &startPos) -{ - auto pointerDownEvent = PointerEvent::Create(); - CHKPF(pointerDownEvent); - PointerEvent::PointerItem downitem; - downitem.SetPointerId(0); - int32_t physicalX; - CHECKSIZE(startPos, size); - startPos += GetObject(physicalX, data + startPos, size - startPos); - downitem.SetDisplayX(physicalX); - int32_t physicalY; - CHECKSIZE(startPos, size); - startPos += GetObject(physicalY, data + startPos, size - startPos); - downitem.SetDisplayY(physicalY); - int32_t pressure; - CHECKSIZE(startPos, size); - startPos += GetObject(pressure, data + startPos, size - startPos); - downitem.SetPressure(pressure); - downitem.SetDeviceId(1); - pointerDownEvent->AddPointerItem(downitem); - pointerDownEvent->SetId(std::numeric_limits::max()); - pointerDownEvent->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); - pointerDownEvent->SetPointerId(0); - pointerDownEvent->SetSourceType(PointerEvent::SOURCE_TYPE_MOUSE); - MMI_HILOGD("Call InputManager::InjectMouseEvent"); - InputManager::GetInstance()->SimulateInputEvent(pointerDownEvent); - - auto pointerUpEvent = PointerEvent::Create(); - CHKPF(pointerUpEvent); - PointerEvent::PointerItem upitem; - upitem.SetPointerId(0); - upitem.SetDisplayX(physicalX); - upitem.SetDisplayY(physicalY); - upitem.SetPressure(pressure); - upitem.SetDeviceId(1); - pointerUpEvent->AddPointerItem(upitem); - pointerUpEvent->SetId(std::numeric_limits::max()); - pointerUpEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UP); - pointerUpEvent->SetPointerId(0); - pointerUpEvent->SetSourceType(PointerEvent::SOURCE_TYPE_MOUSE); - MMI_HILOGD("Call InputManager::InjectMouseEvent"); - InputManager::GetInstance()->SimulateInputEvent(pointerUpEvent); - return true; -} - -bool InjectEventFuzzTest(const uint8_t* data, const size_t size) -{ - size_t startPos = 0; - if (InjectKeyEvent(data, size, startPos) && InjectTouchEvent(data, size, startPos) && - InjectMouseEvent(data, size, startPos)) { - return true; - } - return false; -} -} // MMI -} // OHOS - -/* Fuzzer entry point */ -extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) -{ - /* Run your code on data */ - OHOS::MMI::InjectEventFuzzTest(data, size); - return 0; -} \ No newline at end of file diff --git a/test/fuzztest/inputdevicemanagerone_fuzzer/inputdevicemanagerone_fuzzer.cpp b/test/fuzztest/inputdevicemanagerone_fuzzer/inputdevicemanagerone_fuzzer.cpp deleted file mode 100644 index 255102733bb6b175a99d89b810952d8db7da3617..0000000000000000000000000000000000000000 --- a/test/fuzztest/inputdevicemanagerone_fuzzer/inputdevicemanagerone_fuzzer.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/* - * 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 "mmi_log.h" -#include "input_device_manager.h" -#include "inputdevicemanagerone_fuzzer.h" -#include "fuzzer/FuzzedDataProvider.h" - -#include "securec.h" - -#undef MMI_LOG_TAG -#define MMI_LOG_TAG "InputDeviceManagerOneFuzzTest" - -namespace OHOS { -namespace MMI { -void NotifyMessageFuzzTest(FuzzedDataProvider &provider) -{ - auto session = std::shared_ptr(); - int32_t id = provider.ConsumeIntegral(); - std::string type = provider.ConsumeBytesAsString(20); - INPUT_DEV_MGR->NotifyMessage(session, id, type); -} - -void GenerateVirtualDeviceIdFuzzTest(FuzzedDataProvider &provider) -{ - int32_t deviceId = provider.ConsumeIntegral(); - auto device = std::make_shared(); - INPUT_DEV_MGR->virtualInputDevices_[deviceId] = device; - INPUT_DEV_MGR->GenerateVirtualDeviceId(deviceId); -} - -void GetInputDeviceFuzzTest(FuzzedDataProvider &provider) -{ - int32_t deviceId = provider.ConsumeIntegral(); - bool checked = provider.ConsumeBool(); - InputDeviceManager::InputDeviceInfo deviceInfo; - deviceInfo.isRemote = provider.ConsumeBool(); - deviceInfo.enable = provider.ConsumeBool(); - INPUT_DEV_MGR->inputDevice_.insert(std::make_pair(deviceId, deviceInfo)); - INPUT_DEV_MGR->GetInputDevice(deviceId, checked); -} - -void SupportKeysFuzzTest(FuzzedDataProvider &provider) -{ - int32_t deviceId = provider.ConsumeIntegral(); - std::vector keyCodes = { - provider.ConsumeIntegral(), - provider.ConsumeIntegral(), - provider.ConsumeIntegral(), - provider.ConsumeIntegral() - }; - std::vector keystroke = { - provider.ConsumeBool(), - provider.ConsumeBool() - }; - InputDeviceManager::InputDeviceInfo deviceInfo; - deviceInfo.isRemote = provider.ConsumeBool(); - deviceInfo.enable = provider.ConsumeBool(); - INPUT_DEV_MGR->inputDevice_.insert(std::make_pair(deviceId, deviceInfo)); - INPUT_DEV_MGR->SupportKeys(deviceId, keyCodes, keystroke); -} - -void NotifyDevCallbackFuzzTest(FuzzedDataProvider &provider) -{ - int32_t deviceId = provider.ConsumeIntegral(); - InputDeviceManager::InputDeviceInfo deviceInfo; - deviceInfo.isTouchableDevice = provider.ConsumeBool(); - deviceInfo.enable = provider.ConsumeBool(); - INPUT_DEV_MGR->NotifyDevCallback(deviceId, deviceInfo); -} - -bool InputDeviceManagerOneFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider provider(data, size); - NotifyMessageFuzzTest(provider); - GenerateVirtualDeviceIdFuzzTest(provider); - GetInputDeviceFuzzTest(provider); - SupportKeysFuzzTest(provider); - NotifyDevCallbackFuzzTest(provider); - return true; -} -} // namespace MMI -} // namespace OHOS - -extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) -{ - /* Run your code on data */ - if (data == nullptr) { - return 0; - } - - OHOS::MMI::InputDeviceManagerOneFuzzTest(data, size); - return 0; -} \ No newline at end of file diff --git a/test/fuzztest/setmousescrollrows_fuzzer/setmousescrollrows_fuzzer.cpp b/test/fuzztest/setmousescrollrows_fuzzer/setmousescrollrows_fuzzer.cpp deleted file mode 100644 index d4a2d76a8e9f3ed835fb07e2962c2cfee15b7261..0000000000000000000000000000000000000000 --- a/test/fuzztest/setmousescrollrows_fuzzer/setmousescrollrows_fuzzer.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) 2023 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 -#include "setmousescrollrows_fuzzer.h" - -#include "securec.h" - -#include "input_manager.h" -#include "mmi_log.h" - -#undef MMI_LOG_TAG -#define MMI_LOG_TAG "SetMouseScrollRowsFuzzTest" - -namespace OHOS { -namespace MMI { -void SetMouseScrollRowsFuzzTest(const uint8_t* data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - int32_t rowsBefore = fdp.ConsumeIntegral(); - int32_t rowsAfter; - MMI_HILOGD("SetMouseScrollRows start"); - InputManager::GetInstance()->SetMouseScrollRows(rowsBefore); - InputManager::GetInstance()->GetMouseScrollRows(rowsAfter); -} - -void SetPointerSizeFuzzTest(const uint8_t* data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - int32_t pointerSizeBefore = fdp.ConsumeIntegral(); - int32_t pointerSizeAfter; - InputManager::GetInstance()->SetPointerSize(pointerSizeBefore); - InputManager::GetInstance()->GetPointerSize(pointerSizeAfter); -} - -void GetAllMmiSubscribedEventsFuzzTest(const uint8_t* data, size_t size) -{ - std::map, int32_t> map; - MMI_HILOGD("GetAllMmiSubscribedEventsFuzzTest start"); - InputManager::GetInstance()->GetAllMmiSubscribedEvents(map); -} - -void SetNapStatusFuzzTest(const uint8_t* data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - int32_t pid = fdp.ConsumeIntegral(); - int32_t uid = fdp.ConsumeIntegral(); - std::string bundleName = fdp.ConsumeRandomLengthString(); - int32_t state = fdp.ConsumeIntegral(); - InputManager::GetInstance()->SetNapStatus(pid, uid, bundleName, state); -} - -void SetHoverScrollStateFuzzTest(const uint8_t* data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - bool state = fdp.ConsumeBool(); - InputManager::GetInstance()->SetHoverScrollState(state); - InputManager::GetInstance()->GetHoverScrollState(state); -} - -void PointerColorFuzzTest(const uint8_t* data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - int32_t color = fdp.ConsumeIntegralInRange(0, 0x00FFFFFF); - InputManager::GetInstance()->SetPointerColor(color); - InputManager::GetInstance()->GetPointerColor(color); -} - -void ClearWindowPointerStyleFuzzTest(const uint8_t* data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - int32_t pid = fdp.ConsumeIntegral(); - int32_t uid = fdp.ConsumeIntegral(); - InputManager::GetInstance()->ClearWindowPointerStyle(pid, uid); -} - -void SetKeyboardRepeatDelayFuzzTest(const uint8_t* data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - int32_t delayTime = fdp.ConsumeIntegral(); - InputManager::GetInstance()->SetKeyboardRepeatDelay(delayTime); -} -} // MMI -} // OHOS - -/* Fuzzer entry point */ -extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) -{ - /* Run your code on data */ - OHOS::MMI::SetMouseScrollRowsFuzzTest(data, size); - OHOS::MMI::SetPointerSizeFuzzTest(data, size); - OHOS::MMI::GetAllMmiSubscribedEventsFuzzTest(data, size); - OHOS::MMI::SetNapStatusFuzzTest(data, size); - OHOS::MMI::SetHoverScrollStateFuzzTest(data, size); - OHOS::MMI::PointerColorFuzzTest(data, size); - OHOS::MMI::ClearWindowPointerStyleFuzzTest(data, size); - OHOS::MMI::SetKeyboardRepeatDelayFuzzTest(data, size); - return 0; -} - diff --git a/test/fuzztest/stubhandleallocsocketfd_fuzzer/stubhandleallocsocketfd_fuzzer.cpp b/test/fuzztest/stubhandleallocsocketfd_fuzzer/stubhandleallocsocketfd_fuzzer.cpp deleted file mode 100644 index 13e5341fda0db13f50058c776afc37140d8854aa..0000000000000000000000000000000000000000 --- a/test/fuzztest/stubhandleallocsocketfd_fuzzer/stubhandleallocsocketfd_fuzzer.cpp +++ /dev/null @@ -1,764 +0,0 @@ -/* - * 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. - */ - -#include -#include "stubhandleallocsocketfd_fuzzer.h" - -#include "mmi_service.h" -#include "multimodal_input_connect_stub.h" - -#undef MMI_LOG_TAG -#define MMI_LOG_TAG "StubHandleAllocSocketFdFuzzTest" - -class UDSSession; -using SessionPtr = std::shared_ptr; - -namespace OHOS { -namespace MMI { -namespace { -constexpr uint32_t MAX_BUNDLE_NAME_LENGTH = 127; -} // namespace -const std::u16string FORMMGR_INTERFACE_TOKEN = IMultimodalInputConnect::GetDescriptor(); - -void AddEpollFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - EpollEventType type = static_cast(fdp.ConsumeIntegralInRange(0, EPOLL_EVENT_END)); - int32_t fd = fdp.ConsumeIntegral(); - bool readOnly = fdp.ConsumeBool(); - MMIService::GetInstance()->AddEpoll(type, fd, readOnly); -} - -void DelEpollFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - EpollEventType type = static_cast(fdp.ConsumeIntegralInRange(0, EPOLL_EVENT_END)); - int32_t fd = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->DelEpoll(type, fd); -} - -void SetMouseScrollRowsFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - int32_t rows = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->SetMouseScrollRows(rows); -} - -void SetMouseIconFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - int32_t windowId = fdp.ConsumeIntegral(); - CursorPixelMap cursorPixelMap; - - MMIService::GetInstance()->SetMouseIcon(windowId, cursorPixelMap); -} - -void ReadMouseScrollRowsFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - int32_t rows = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->ReadMouseScrollRows(rows); -} - -void MarkProcessedFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - int32_t eventType = fdp.ConsumeIntegral(); - int32_t eventId = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->MarkProcessed(eventType, eventId); -} - -void OnSupportKeysFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - int32_t deviceId = fdp.ConsumeIntegral(); - std::vector keys = { - fdp.ConsumeIntegral(), - fdp.ConsumeIntegral(), - fdp.ConsumeIntegral(), - fdp.ConsumeIntegral() - }; - std::vector keystroke = { - fdp.ConsumeBool(), - fdp.ConsumeBool() - }; - - MMIService::GetInstance()->OnSupportKeys(deviceId, keys, keystroke); -} - -void OnGetDeviceIdsFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - std::vector ids = { - fdp.ConsumeIntegral(), - fdp.ConsumeIntegral(), - fdp.ConsumeIntegral(), - fdp.ConsumeIntegral() - }; - - MMIService::GetInstance()->OnGetDeviceIds(ids); -} - -void OnGetDeviceFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t deviceId = fdp.ConsumeIntegral(); - std::shared_ptr inputDevice = std::make_shared(); - - MMIService::GetInstance()->OnGetDevice(deviceId, inputDevice); -} - -void OnGetKeyboardTypeFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t deviceId = fdp.ConsumeIntegral(); - int32_t keyboardType = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->OnGetKeyboardType(deviceId, keyboardType); -} - -void SetKeyboardRepeatDelayFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t delay = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->SetKeyboardRepeatDelay(delay); -} - -void CheckRemoveInputFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t pid = fdp.ConsumeIntegral(); - InputHandlerType handlerType = - static_cast(fdp.ConsumeIntegralInRange(0, MONITOR)); - HandleEventType eventType = fdp.ConsumeIntegral(); - int32_t priority = fdp.ConsumeIntegral(); - uint32_t deviceTags = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->CheckRemoveInput(pid, handlerType, eventType, priority, deviceTags); -} - -void RemoveInputHandlerFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t handlerType = fdp.ConsumeIntegral(); - uint32_t eventType = fdp.ConsumeIntegral(); - int32_t priority = fdp.ConsumeIntegral(); - uint32_t deviceTags = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->RemoveInputHandler(handlerType, eventType, priority, deviceTags); -} - -void MarkEventConsumedFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t eventId = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->MarkEventConsumed(eventId); -} - -void MoveMouseEventFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t offsetX = fdp.ConsumeIntegral(); - int32_t offsetY = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->MoveMouseEvent(offsetX, offsetY); -} - -void InjectPointerEventFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - std::shared_ptr pointerEvent = PointerEvent::Create(); - pointerEvent->pointerAction_ = fdp.ConsumeIntegral(); - pointerEvent->originPointerAction_ = fdp.ConsumeIntegral(); - pointerEvent->buttonId_ = fdp.ConsumeIntegral(); - pointerEvent->fingerCount_ = fdp.ConsumeIntegral(); - pointerEvent->pullId_ = fdp.ConsumeIntegral(); - bool isNativeInject = fdp.ConsumeBool(); - int32_t useCoordinate = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->InjectPointerEvent(*pointerEvent.get(), isNativeInject, useCoordinate); -} - -void OnAddSystemAbilityFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t systemAbilityId = fdp.ConsumeIntegral(); - std::string deviceId = fdp.ConsumeBytesAsString(10); // test value - - MMIService::GetInstance()->OnAddSystemAbility(systemAbilityId, deviceId); -} - -void SubscribeKeyEventFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - KeyOption keyOption; - keyOption.finalKey_ = fdp.ConsumeIntegral(); - keyOption.isFinalKeyDown_ = fdp.ConsumeIntegral(); - keyOption.finalKeyDownDuration_ = fdp.ConsumeBool(); - keyOption.finalKeyUpDelay_ = fdp.ConsumeIntegral(); - keyOption.isRepeat_ = fdp.ConsumeBool(); - keyOption.priority_ = SubscribePriority::PRIORITY_0; - - int32_t subscribeId = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->SubscribeKeyEvent(subscribeId, keyOption); -} - -void UnsubscribeKeyEventFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t subscribeId = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->UnsubscribeKeyEvent(subscribeId); -} - -void SubscribeSwitchEventFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t subscribeId = fdp.ConsumeIntegral(); - int32_t switchType = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->SubscribeSwitchEvent(subscribeId, switchType); -} - -void SetDisplayBindFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t deviceId = fdp.ConsumeIntegral(); - int32_t displayId = fdp.ConsumeIntegral(); - std::string msg = fdp.ConsumeBytesAsString(10); // test value - - MMIService::GetInstance()->SetDisplayBind(deviceId, displayId, msg); -} - -void SetFunctionKeyStateFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t funcKey = fdp.ConsumeIntegral(); - bool enable = fdp.ConsumeBool(); - - MMIService::GetInstance()->SetFunctionKeyState(funcKey, enable); -} - -void SetPointerLocationFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t x = fdp.ConsumeIntegral(); - int32_t y = fdp.ConsumeIntegral(); - int32_t displayId = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->SetPointerLocation(x, y, displayId); -} - -void DumpFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - std::vector args = { - u"datatest1", - u"datatest2", - u"datatest3", - u"datatest4" - }; - int32_t fd = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->Dump(fd, args); -} - -void OnGetWindowPidFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t windowId = fdp.ConsumeIntegral(); - int32_t ywindowPid = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->OnGetWindowPid(windowId, ywindowPid); -} - -void GetWindowPidFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t windowId = fdp.ConsumeIntegral(); - int32_t ywindowPid = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->GetWindowPid(windowId, ywindowPid); -} - -void SetKeyDownDurationFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - std::string businessId = fdp.ConsumeBytesAsString(10); // test value - int32_t delay = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->SetKeyDownDuration(businessId, delay); -} - -void ReadTouchpadScrollSwichFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool switchFlag = fdp.ConsumeBool(); - - MMIService::GetInstance()->ReadTouchpadScrollSwich(switchFlag); -} - -void ReadTouchpadScrollDirectionFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool switchFlag = fdp.ConsumeBool(); - - MMIService::GetInstance()->ReadTouchpadScrollDirection(switchFlag); -} - -void ReadTouchpadTapSwitchFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool switchFlag = fdp.ConsumeBool(); - - MMIService::GetInstance()->ReadTouchpadTapSwitch(switchFlag); -} - -void ReadTouchpadPointerSpeedFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t speed = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->ReadTouchpadPointerSpeed(speed); -} - -void ReadTouchpadPinchSwitchFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool switchFlag = fdp.ConsumeBool(); - - MMIService::GetInstance()->ReadTouchpadPinchSwitch(switchFlag); -} - -void ReadTouchpadSwipeSwitchFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool switchFlag = fdp.ConsumeBool(); - - MMIService::GetInstance()->ReadTouchpadSwipeSwitch(switchFlag); -} - -void ReadTouchpadRightMenuTypeFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t type = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->ReadTouchpadRightMenuType(type); -} - -void ReadTouchpadRotateSwitchFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool rotateSwitch = fdp.ConsumeBool(); - - MMIService::GetInstance()->ReadTouchpadRotateSwitch(rotateSwitch); -} - -void SetTouchpadScrollSwitchFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool switchFlag = fdp.ConsumeBool(); - - MMIService::GetInstance()->SetTouchpadScrollSwitch(switchFlag); -} - -void GetTouchpadScrollSwitchFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool switchFlag = fdp.ConsumeBool(); - - MMIService::GetInstance()->GetTouchpadScrollSwitch(switchFlag); -} - -void SetTouchpadScrollDirectionFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool state = fdp.ConsumeBool(); - - MMIService::GetInstance()->SetTouchpadScrollDirection(state); -} - -void GetTouchpadScrollDirectionFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool switchFlag = fdp.ConsumeBool(); - - MMIService::GetInstance()->GetTouchpadScrollDirection(switchFlag); -} - -void SetTouchpadTapSwitchFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool switchFlag = fdp.ConsumeBool(); - - MMIService::GetInstance()->SetTouchpadTapSwitch(switchFlag); -} - -void GetTouchpadTapSwitchFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool switchFlag = fdp.ConsumeBool(); - - MMIService::GetInstance()->GetTouchpadTapSwitch(switchFlag); -} - -void SetTouchpadPointerSpeedFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t speed = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->SetTouchpadPointerSpeed(speed); -} - -void GetTouchpadPointerSpeedFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t speed = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->GetTouchpadPointerSpeed(speed); -} - -void SetTouchpadPinchSwitchFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool switchFlag = fdp.ConsumeBool(); - - MMIService::GetInstance()->SetTouchpadPinchSwitch(switchFlag); -} - -void GetTouchpadPinchSwitchFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool switchFlag = fdp.ConsumeBool(); - - MMIService::GetInstance()->GetTouchpadPinchSwitch(switchFlag); -} - -void SetTouchpadSwipeSwitchFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool switchFlag = fdp.ConsumeBool(); - - MMIService::GetInstance()->SetTouchpadSwipeSwitch(switchFlag); -} - -void GetTouchpadSwipeSwitchFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool switchFlag = fdp.ConsumeBool(); - - MMIService::GetInstance()->GetTouchpadSwipeSwitch(switchFlag); -} - -void SetTouchpadRightClickTypeFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t type = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->SetTouchpadRightClickType(type); -} - -void SetTouchpadRotateSwitchFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool rotateSwitch = fdp.ConsumeBool(); - - MMIService::GetInstance()->SetTouchpadRotateSwitch(rotateSwitch); -} - -void GetTouchpadRotateSwitchFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool rotateSwitch = fdp.ConsumeBool(); - - MMIService::GetInstance()->GetTouchpadRotateSwitch(rotateSwitch); -} - -void GetKeyStateFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - std::vector pressedKey = { - fdp.ConsumeIntegral(), - fdp.ConsumeIntegral(), - fdp.ConsumeIntegral(), - fdp.ConsumeIntegral() - }; - - std::unordered_map specialkeysState = { - {fdp.ConsumeIntegral(), fdp.ConsumeIntegral()}, - {fdp.ConsumeIntegral(), fdp.ConsumeIntegral()}, - {fdp.ConsumeIntegral(), fdp.ConsumeIntegral()}, - {fdp.ConsumeIntegral(), fdp.ConsumeIntegral()}, - }; - - MMIService::GetInstance()->GetKeyState(pressedKey, specialkeysState); -} - -void AuthorizeFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool isAuthorize = fdp.ConsumeBool(); - - MMIService::GetInstance()->Authorize(isAuthorize); -} - -void OnAuthorizeFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool isAuthorize = fdp.ConsumeBool(); - - MMIService::GetInstance()->OnAuthorize(isAuthorize); -} - -void TransmitInfraredFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int64_t number = fdp.ConsumeIntegral(); - std::vector pattern = { - fdp.ConsumeIntegral(), - fdp.ConsumeIntegral(), - fdp.ConsumeIntegral(), - fdp.ConsumeIntegral() - }; - - MMIService::GetInstance()->TransmitInfrared(number, pattern); -} - -void SetPixelMapDataFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t infoId = fdp.ConsumeIntegral(); - CursorPixelMap cursorPixelMap; - - MMIService::GetInstance()->SetPixelMapData(infoId, cursorPixelMap); -} - -void SetCurrentUserFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t userId = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->SetCurrentUser(userId); -} - -void AddVirtualInputDeviceFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t deviceId = fdp.ConsumeIntegral(); - InputDevice device; - device.id_ = fdp.ConsumeIntegral(); - device.type_ = fdp.ConsumeIntegral(); - device.bus_ = fdp.ConsumeIntegral(); - device.version_ = fdp.ConsumeIntegral(); - device.product_ = fdp.ConsumeIntegral(); - device.vendor_ = fdp.ConsumeIntegral(); - device.phys_ = fdp.ConsumeRandomLengthString(MAX_BUNDLE_NAME_LENGTH); - device.uniq_ = fdp.ConsumeRandomLengthString(MAX_BUNDLE_NAME_LENGTH); - MMIService::GetInstance()->AddVirtualInputDevice(device, deviceId); -} - -void RemoveVirtualInputDeviceFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - int32_t deviceId = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->RemoveVirtualInputDevice(deviceId); -} - -void EnableHardwareCursorStatsFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - bool enable = fdp.ConsumeBool(); - - MMIService::GetInstance()->EnableHardwareCursorStats(enable); -} - -void GetHardwareCursorStatsFuzzTest(const uint8_t *data, size_t size) -{ - FuzzedDataProvider fdp(data, size); - - uint32_t frameCount = fdp.ConsumeIntegral(); - uint32_t vsyncCount = fdp.ConsumeIntegral(); - - MMIService::GetInstance()->GetHardwareCursorStats(frameCount, vsyncCount); -} - -void MmiServiceFuzzFirstGroup(const uint8_t *data, size_t size) -{ - AddEpollFuzzTest(data, size); - DelEpollFuzzTest(data, size); - SetMouseScrollRowsFuzzTest(data, size); - SetMouseIconFuzzTest(data, size); - ReadMouseScrollRowsFuzzTest(data, size); - MarkProcessedFuzzTest(data, size); - OnSupportKeysFuzzTest(data, size); - OnGetDeviceIdsFuzzTest(data, size); - OnGetDeviceFuzzTest(data, size); - OnGetKeyboardTypeFuzzTest(data, size); - SetKeyboardRepeatDelayFuzzTest(data, size); - CheckRemoveInputFuzzTest(data, size); - RemoveInputHandlerFuzzTest(data, size); - MarkEventConsumedFuzzTest(data, size); - MoveMouseEventFuzzTest(data, size); - InjectPointerEventFuzzTest(data, size); - OnAddSystemAbilityFuzzTest(data, size); - SubscribeKeyEventFuzzTest(data, size); - UnsubscribeKeyEventFuzzTest(data, size); - SubscribeSwitchEventFuzzTest(data, size); - SetDisplayBindFuzzTest(data, size); - SetFunctionKeyStateFuzzTest(data, size); - SetPointerLocationFuzzTest(data, size); - DumpFuzzTest(data, size); - OnGetWindowPidFuzzTest(data, size); - GetWindowPidFuzzTest(data, size); - SetKeyDownDurationFuzzTest(data, size); - ReadTouchpadScrollSwichFuzzTest(data, size); - ReadTouchpadScrollDirectionFuzzTest(data, size); - ReadTouchpadTapSwitchFuzzTest(data, size); -} - -void MmiServiceFuzzSecondGroup(const uint8_t *data, size_t size) -{ - ReadTouchpadPointerSpeedFuzzTest(data, size); - ReadTouchpadPinchSwitchFuzzTest(data, size); - ReadTouchpadSwipeSwitchFuzzTest(data, size); - ReadTouchpadRightMenuTypeFuzzTest(data, size); - ReadTouchpadRotateSwitchFuzzTest(data, size); - SetTouchpadScrollSwitchFuzzTest(data, size); - GetTouchpadScrollSwitchFuzzTest(data, size); - SetTouchpadScrollDirectionFuzzTest(data, size); - GetTouchpadScrollDirectionFuzzTest(data, size); - SetTouchpadTapSwitchFuzzTest(data, size); - GetTouchpadTapSwitchFuzzTest(data, size); - SetTouchpadPointerSpeedFuzzTest(data, size); - GetTouchpadPointerSpeedFuzzTest(data, size); - SetTouchpadPinchSwitchFuzzTest(data, size); - GetTouchpadPinchSwitchFuzzTest(data, size); - SetTouchpadSwipeSwitchFuzzTest(data, size); - GetTouchpadSwipeSwitchFuzzTest(data, size); - SetTouchpadRightClickTypeFuzzTest(data, size); - SetTouchpadRotateSwitchFuzzTest(data, size); - GetTouchpadRotateSwitchFuzzTest(data, size); - GetKeyStateFuzzTest(data, size); - AuthorizeFuzzTest(data, size); - OnAuthorizeFuzzTest(data, size); - TransmitInfraredFuzzTest(data, size); - SetPixelMapDataFuzzTest(data, size); - SetCurrentUserFuzzTest(data, size); - AddVirtualInputDeviceFuzzTest(data, size); - RemoveVirtualInputDeviceFuzzTest(data, size); - EnableHardwareCursorStatsFuzzTest(data, size); - GetHardwareCursorStatsFuzzTest(data, size); -} - -bool StubHandleAllocSocketFdFuzzTest(const uint8_t *data, size_t size) -{ - MessageParcel datas; - if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) || - !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) { - return false; - } - MessageParcel reply; - MessageOption option; - - MMIService::GetInstance()->InitLibinputService(); - MMIService::GetInstance()->InitDelegateTasks(); - MMIService::GetInstance()->AddAppDebugListener(); - MMIService::GetInstance()->AddReloadDeviceTimer(); - MMIService::GetInstance()->CancelInjection(); - MMIService::GetInstance()->OnCancelInjection(); - MmiServiceFuzzFirstGroup(data, size); - MmiServiceFuzzSecondGroup(data, size); - -#ifdef OHOS_BUILD_ENABLE_MAGICCURSOR - MMIService::GetInstance()->GetPointerSnapshot(*pixelMapPtr); -#endif // OHOS_BUILD_ENABLE_MAGICCURSOR - MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING; - MMIService::GetInstance()->OnRemoteRequest( - static_cast(IMultimodalInputConnectIpcCode::COMMAND_ALLOC_SOCKET_FD), datas, reply, option); - return true; -} -} // MMI -} // OHOS - -/* Fuzzer entry point */ -extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) -{ - /* Run your code on data */ - if (data == nullptr) { - return 0; - } - - OHOS::MMI::StubHandleAllocSocketFdFuzzTest(data, size); - return 0; -} diff --git a/test/fuzztest/stubhandleallocsocketfd_fuzzer/BUILD.gn b/test/fuzztest/stubhandleswipeswitch_fuzzer/BUILD.gn similarity index 92% rename from test/fuzztest/stubhandleallocsocketfd_fuzzer/BUILD.gn rename to test/fuzztest/stubhandleswipeswitch_fuzzer/BUILD.gn index bfe66042e86502de1bf4809323878ec42da7cf47..21f51928d7cd7eb20b07d3449d6071e546b0ba22 100644 --- a/test/fuzztest/stubhandleallocsocketfd_fuzzer/BUILD.gn +++ b/test/fuzztest/stubhandleswipeswitch_fuzzer/BUILD.gn @@ -1,4 +1,4 @@ -# Copyright (c) 2024 Huawei Device Co., Ltd. +# 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 @@ -18,9 +18,9 @@ import("../../../multimodalinput_mini.gni") module_output_path = "input/input" ##############################fuzztest########################################## -ohos_fuzztest("StubHandleAllocSocketFdFuzzTest") { +ohos_fuzztest("StubHandleSwipeSwitchFuzzTest") { module_out_path = module_output_path - fuzz_config_file = "${mmi_path}/test/fuzztest/stubhandleallocsocketfd_fuzzer" + fuzz_config_file = "${mmi_path}/test/fuzztest/stubhandleswipeswitch_fuzzer" include_dirs = [ "${mmi_path}/interfaces/util/common/include", "${mmi_path}/service/connect_manager/include", @@ -60,7 +60,7 @@ ohos_fuzztest("StubHandleAllocSocketFdFuzzTest") { "${mmi_path}/common/anco/comm:mmi_anco_channel_config", ] - sources = [ "stubhandleallocsocketfd_fuzzer.cpp" ] + sources = [ "stubhandleswipeswitch_fuzzer.cpp" ] deps = [ "${mmi_path}/frameworks/proxy:libmmi-client", @@ -102,7 +102,7 @@ group("fuzztest") { deps = [] deps += [ # deps file - ":StubHandleAllocSocketFdFuzzTest", + ":StubHandleSwipeSwitchFuzzTest", ] } ############################################################################### diff --git a/test/fuzztest/inputdevicemanagerone_fuzzer/corpus/init b/test/fuzztest/stubhandleswipeswitch_fuzzer/corpus/init similarity index 100% rename from test/fuzztest/inputdevicemanagerone_fuzzer/corpus/init rename to test/fuzztest/stubhandleswipeswitch_fuzzer/corpus/init diff --git a/test/fuzztest/inputdevicemanagerone_fuzzer/project.xml b/test/fuzztest/stubhandleswipeswitch_fuzzer/project.xml similarity index 98% rename from test/fuzztest/inputdevicemanagerone_fuzzer/project.xml rename to test/fuzztest/stubhandleswipeswitch_fuzzer/project.xml index 500f6f414493290025d8dea9b066e5d5021a9377..66e1dcac475475fb101b6f8670ec699e6e9696aa 100644 --- a/test/fuzztest/inputdevicemanagerone_fuzzer/project.xml +++ b/test/fuzztest/stubhandleswipeswitch_fuzzer/project.xml @@ -22,4 +22,4 @@ 4096 - \ No newline at end of file + diff --git a/test/fuzztest/stubhandleswipeswitch_fuzzer/stubhandleswipeswitch_fuzzer.cpp b/test/fuzztest/stubhandleswipeswitch_fuzzer/stubhandleswipeswitch_fuzzer.cpp new file mode 100644 index 0000000000000000000000000000000000000000..3f42d37d54a7443d901e14ee23650feac46b09c3 --- /dev/null +++ b/test/fuzztest/stubhandleswipeswitch_fuzzer/stubhandleswipeswitch_fuzzer.cpp @@ -0,0 +1,54 @@ +/* + * 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 +#include "stubhandleswipeswitch_fuzzer.h" + +#include "mmi_service.h" +#include "multimodal_input_connect_stub.h" + +#undef MMI_LOG_TAG +#define MMI_LOG_TAG "StubHandleAllocSocketFdFuzzTest" + +class UDSSession; +using SessionPtr = std::shared_ptr; + +namespace OHOS { +namespace MMI { + +void StubHandleSwipeSwitchFuzzTest(const uint8_t *data, size_t size) +{ + FuzzedDataProvider provider(data, size); + + bool switchFlag = provider.ConsumeBool(); + + MMIService::GetInstance()->SetTouchpadSwipeSwitch(switchFlag); + MMIService::GetInstance()->ReadTouchpadSwipeSwitch(switchFlag); + MMIService::GetInstance()->GetTouchpadSwipeSwitch(switchFlag); +} +} // MMI +} // OHOS + +/* Fuzzer entry point */ +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) +{ + /* Run your code on data */ + if (data == nullptr) { + return 0; + } + + OHOS::MMI::StubHandleSwipeSwitchFuzzTest(data, size); + return 0; +} diff --git a/test/fuzztest/stubhandleallocsocketfd_fuzzer/stubhandleallocsocketfd_fuzzer.h b/test/fuzztest/stubhandleswipeswitch_fuzzer/stubhandleswipeswitch_fuzzer.h similarity index 86% rename from test/fuzztest/stubhandleallocsocketfd_fuzzer/stubhandleallocsocketfd_fuzzer.h rename to test/fuzztest/stubhandleswipeswitch_fuzzer/stubhandleswipeswitch_fuzzer.h index b3bc7c103c7491e5ba44b3a63744c905ef40264a..89ebc454dcdec0a340a1a621aaf8e6bc4961736b 100644 --- a/test/fuzztest/stubhandleallocsocketfd_fuzzer/stubhandleallocsocketfd_fuzzer.h +++ b/test/fuzztest/stubhandleswipeswitch_fuzzer/stubhandleswipeswitch_fuzzer.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024 Huawei Device Co., Ltd. + * 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 @@ -16,6 +16,6 @@ #ifndef STUBHANDLEALLOCSOCAETFD_FUZZER_H #define STUBHANDLEALLOCSOCAETFD_FUZZER_H -#define FUZZ_PROJECT_NAME "stubhandleallocsocketfd_fuzzer" +#define FUZZ_PROJECT_NAME "stubhandleswipeswitch_fuzzer" #endif // STUBHANDLEALLOCSOCAETFD_FUZZER_H diff --git a/test/fuzztest/injectevent_fuzzer/BUILD.gn b/test/fuzztest/stubhandleswitchevent_fuzzer/BUILD.gn similarity index 59% rename from test/fuzztest/injectevent_fuzzer/BUILD.gn rename to test/fuzztest/stubhandleswitchevent_fuzzer/BUILD.gn index 27696468353309c9a966276e009289a949af2da5..8c82b5f60701ae1ae031d7054e61a05c2d70fe50 100644 --- a/test/fuzztest/injectevent_fuzzer/BUILD.gn +++ b/test/fuzztest/stubhandleswitchevent_fuzzer/BUILD.gn @@ -1,4 +1,4 @@ -# Copyright (c) 2024 Huawei Device Co., Ltd. +# 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 @@ -18,56 +18,40 @@ import("../../../multimodalinput_mini.gni") module_output_path = "input/input" ##############################fuzztest########################################## -ohos_fuzztest("InjectEventFuzzTest") { +ohos_fuzztest("StubHandleSwitchEventFuzzTest") { module_out_path = module_output_path - fuzz_config_file = "${mmi_path}/test/fuzztest/injectevent_fuzzer" + fuzz_config_file = "${mmi_path}/test/fuzztest/stubhandleswitchevent_fuzzer" include_dirs = [ - "${mmi_path}/service/app_state_manager/include", - "${mmi_path}/service/device_config/include", - "${mmi_path}/service/device_manager/include", - "${mmi_path}/service/device_scalability/include", - "${mmi_path}/service/device_state_manager/include", + "${mmi_path}/interfaces/util/common/include", + "${mmi_path}/service/connect_manager/include", + "${mmi_path}/service/filter/include/", + "${mmi_path}/service/nap_process/include/", + "${mmi_path}/service/module_loader/include", "${mmi_path}/service/delegate_task/include", - "${mmi_path}/service/display_state_manager/include", - "${mmi_path}/service/event_dispatch/include", - "${mmi_path}/service/key_event_normalize/include", "${mmi_path}/service/event_handler/include", - "${mmi_path}/service/event_dump/include", - "${mmi_path}/service/fingersense_wrapper/include", - "${mmi_path}/service/gesturesense_wrapper/include", - "${mmi_path}/service/monitor/include", + "${mmi_path}/service/event_dispatch/include", "${mmi_path}/service/interceptor/include", "${mmi_path}/service/joystick/include", - "${mmi_path}/service/dfx/include", - "${mmi_path}/service/libinput_adapter/include", - "${mmi_path}/service/message_handle/include", - "${mmi_path}/service/module_loader/include", + "${mmi_path}/service/monitor/include", + "${mmi_path}/service/key_event_normalize/include", "${mmi_path}/service/window_manager/include", - "${mmi_path}/service/touch_event_normalize/include", "${mmi_path}/service/key_command/include", "${mmi_path}/service/subscriber/include", - "${mmi_path}/service/timer_manager/include", - "${mmi_path}/service/permission_helper/include", - "${mmi_path}/service/connect_manager/include", - "${mmi_path}/service/device_state_manager/include", - "${mmi_path}/service/filter/include", - "${mmi_path}/service/module_loader/include", - "${mmi_path}/service/nap_process/include", - "${mmi_path}/service/event_resample/include", - "${mmi_path}/interfaces/native/innerkits/proxy/include", - "${mmi_path}/interfaces/native/innerkits/event/include", "${mmi_path}/service/mouse_event_normalize/include", - "${mmi_path}/interfaces/native/innerkits/common/include", + "${mmi_path}/service/timer_manager/include", + "${mmi_path}/service/libinput_adapter/include", + "${mmi_path}/service/message_handle/include", + "${mmi_path}/service/touch_event_normalize/include", "${mmi_path}/util/common/include", - "${mmi_path}/util/socket/include", - "${mmi_path}/util/network/include", - "${mmi_path}/frameworks/proxy/event_handler/include", + "${mmi_path}/common/anco/comm/include", ] cflags = [ "-g", "-O0", "-Wno-unused-variable", "-fno-omit-frame-pointer", + "-Dprivate=public", + "-Dprotected=public", ] configs = [ @@ -76,61 +60,37 @@ ohos_fuzztest("InjectEventFuzzTest") { "${mmi_path}/common/anco/comm:mmi_anco_channel_config", ] - sources = [ "injectevent_fuzzer.cpp" ] + sources = [ "stubhandleswitchevent_fuzzer.cpp" ] + deps = [ "${mmi_path}/frameworks/proxy:libmmi-client", + "${mmi_path}/frameworks/proxy:libmmi-common", "${mmi_path}/service:libmmi-server", "${mmi_path}/util:libmmi-util", ] external_deps = [ - "ability_base:want", - "ability_base:zuri", - "ability_runtime:ability_manager", - "ability_runtime:abilitykit_native", "ability_runtime:app_manager", - "ability_runtime:dataobs_manager", - "access_token:libaccesstoken_sdk", - "access_token:libtokenid_sdk", "cJSON:cjson", - "c_utils:utilsbase", - "common_event_service:cesfwk_innerkits", - "config_policy:configpolicy_util", + "c_utils:utils", "data_share:datashare_consumer", - "eventhandler:libeventhandler", - "faultloggerd:libbacktrace_local", "graphic_2d:2d_graphics", "graphic_2d:librender_service_base", "graphic_2d:librender_service_client", - "hicollie:libhicollie", "hilog:libhilog", - "hilog:libhilog_base", - "hisysevent:libhisysevent", "image_framework:image_native", - "init:libbeget_proxy", - "init:libbegetutil", "ipc:ipc_single", "libinput:libinput-third-mmi", - "napi:ace_napi", "preferences:native_preferences", "safwk:system_ability_fwk", "samgr:samgr_proxy", "window_manager:libwm", - "window_manager:libwsutils", ] - if (hitrace_enabled) { - external_deps += [ "hitrace:hitrace_meter" ] - } - if (security_component_enable) { external_deps += [ "security_component_manager:libsecurity_component_sdk" ] } - if (resource_schedule_service_enabled) { - external_deps += [ "resource_schedule_service:ressched_client" ] - } - if (enable_player_framework) { external_deps += [ "player_framework:media_client" ] } @@ -142,7 +102,7 @@ group("fuzztest") { deps = [] deps += [ # deps file - ":InjectEventFuzzTest", + ":StubHandleSwitchEventFuzzTest", ] } ############################################################################### diff --git a/test/fuzztest/injectevent_fuzzer/corpus/init b/test/fuzztest/stubhandleswitchevent_fuzzer/corpus/init similarity index 92% rename from test/fuzztest/injectevent_fuzzer/corpus/init rename to test/fuzztest/stubhandleswitchevent_fuzzer/corpus/init index e7c3fecd8d4d4816e40088113a2316bb9eb2e13f..65af8ee8d11bf23407ea34d4de49f7cbb6a2b791 100644 --- a/test/fuzztest/injectevent_fuzzer/corpus/init +++ b/test/fuzztest/stubhandleswitchevent_fuzzer/corpus/init @@ -1,4 +1,4 @@ -# Copyright (c) 2024 Huawei Device Co., Ltd. +# 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 diff --git a/test/fuzztest/injectevent_fuzzer/project.xml b/test/fuzztest/stubhandleswitchevent_fuzzer/project.xml similarity index 95% rename from test/fuzztest/injectevent_fuzzer/project.xml rename to test/fuzztest/stubhandleswitchevent_fuzzer/project.xml index 7133b2b92440904a5ed04b838733acea0f97486a..66e1dcac475475fb101b6f8670ec699e6e9696aa 100644 --- a/test/fuzztest/injectevent_fuzzer/project.xml +++ b/test/fuzztest/stubhandleswitchevent_fuzzer/project.xml @@ -1,5 +1,5 @@ -