From 910d989e9fdfcccc38d08c52f254029abc13c707 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=8B=E5=BF=97=E5=BA=86?= Date: Mon, 8 Sep 2025 15:49:27 +0800 Subject: [PATCH 1/6] proAudio fuzz MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 蒋志庆 --- test/BUILD.gn | 1 + .../BUILD.gn | 122 ++++++ .../corpus/init | 13 + ...hpaemanager_high_risk_interface_fuzzer.cpp | 410 ++++++++++++++++++ .../hpaemanager_high_risk_interface_fuzzer.h | 212 +++++++++ .../project.xml | 25 ++ 6 files changed, 783 insertions(+) create mode 100644 test/fuzztest/hpaemanagerhighriskinterface_fuzzer/BUILD.gn create mode 100644 test/fuzztest/hpaemanagerhighriskinterface_fuzzer/corpus/init create mode 100644 test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp create mode 100644 test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h create mode 100644 test/fuzztest/hpaemanagerhighriskinterface_fuzzer/project.xml diff --git a/test/BUILD.gn b/test/BUILD.gn index d5ea1150c8..ec9f3045f6 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -320,6 +320,7 @@ group("audio_fuzz_test") { "fuzztest/hpaemanagerstream_fuzzer:fuzztest", "fuzztest/hpaemixernode_fuzzer:fuzztest", "fuzztest/hpaemanagercontrol_fuzzer:fuzztest", + "fuzztest/hpaemanagerhighriskinterface_fuzzer", "fuzztest/hpaenolockqueue_fuzzer:fuzztest", "fuzztest/hpaeoffloadrenderermanager_fuzzer:fuzztest", "fuzztest/hpaeoutputcluster_fuzzer:fuzztest", diff --git a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/BUILD.gn b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/BUILD.gn new file mode 100644 index 0000000000..3e4cf6e499 --- /dev/null +++ b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/BUILD.gn @@ -0,0 +1,122 @@ +# 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. + +import("//build/config/features.gni") +import("//build/test.gni") +import("../../../accessibility.gni") +import("../../../config.gni") + +ohos_fuzztest("HpaeManagerHighRiskInterfaceFuzzTest") { + module_out_path = "audio_framework/audio_framework_engine" + fuzz_config_file = "../hpaemanagerhighriskinterface_fuzzer" + + include_dirs = [ + "../../../services/audio_policy/server/include/service", + "../../../services/audio_policy/server/include", + "../../../services/audio_service/common/include/limiter/", + "../../../services/audio_engine/manager/include", + "../../../services/audio_engine/test/unittest/common", + "../../../services/audio_service/server/include", + ] + + cflags = [ + "-g", + "-O0", + "-Wno-unused-variable", + "-fno-omit-frame-pointer", + "-fno-access-control", + "-DENABLE_HIDUMP_DFX", + "-DENABLE_HOOK_PCM", + ] + + configs = [ + "../../../services/audio_policy:audio_policy_public_config", + "../../../services/audio_engine:audio_engine_node_config", + ] + + sources = [ "hpaemanager_high_risk_interface_fuzzer.cpp" ] + + deps = [ + "../../../frameworks/native/audioutils:audio_utils", + "../../../frameworks/native/bluetoothclient:audio_bluetooth_client", + "../../../services/audio_policy:audio_policy_service_static", + "../../../services/audio_service:audio_common", + "../../../frameworks/native/audioclock:audio_clock", + "../../../services/audio_engine:audio_engine_manager", + "../../../services/audio_engine:audio_engine_utils", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:extension_manager", + "ability_runtime:wantagent_innerkits", + "access_token:libaccesstoken_sdk", + "access_token:libnativetoken_shared", + "access_token:libprivacy_sdk", + "access_token:libtokenid_sdk", + "access_token:libtokensetproc_shared", + "background_task_mgr:bgtaskmgr_innerkits", + "bounds_checking_function:libsec_shared", + "bundle_framework:appexecfwk_base", + "bundle_framework:appexecfwk_core", + "c_utils:utils", + "data_share:datashare_common", + "data_share:datashare_consumer", + "eventhandler:libeventhandler", + "hdf_core:libhdf_ipc_adapter", + "hdf_core:libhdi", + "hdf_core:libpub_utils", + "hicollie:libhicollie", + "hilog:libhilog", + "hisysevent:libhisysevent", + "hitrace:hitrace_meter", + "init:libbegetutil", + "ipc:ipc_single", + "kv_store:distributeddata_inner", + "media_foundation:media_monitor_client", + "media_foundation:media_monitor_common", + "os_account:os_account_innerkits", + "power_manager:powermgr_client", + "relational_store:native_appdatafwk", + "safwk:system_ability_fwk", + "samgr:samgr_proxy", + "bluetooth:btframework" + ] + if (sonic_enable == true) { + external_deps += [ "pulseaudio:sonic" ] + } + if (accessibility_enable == true) { + external_deps += [ + "accessibility:accessibility_common", + "accessibility:accessibilityconfig", + ] + } + + defines = [] + if (use_libfuzzer || use_clang_coverage) { + defines += [ "TEST_COVERAGE" ] + } + if (audio_framework_feature_dtmf_tone) { + defines += [ "FEATURE_DTMF_TONE" ] + } + if (audio_framework_feature_input) { + defines += [ "FEATURE_MULTIMODALINPUT_INPUT" ] + } +} + + + +group("fuzztest") { + testonly = true + deps = [ ":HpaeManagerHighRiskInterfaceFuzzTest" ] +} diff --git a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/corpus/init b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/corpus/init new file mode 100644 index 0000000000..1b910144fb --- /dev/null +++ b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/corpus/init @@ -0,0 +1,13 @@ +# 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/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp new file mode 100644 index 0000000000..a0c6351b8c --- /dev/null +++ b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp @@ -0,0 +1,410 @@ +/* + * 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 "hpaemanager_high_risk_interface_fuzzer.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include "audio_errors.h" +#include "test_case_common.h" +#include "hpae_audio_service_dump_callback_unit_test.h" + +namespace OHOS { +namespace AudioStandard { +using namespace std; +using namespace OHOS::AudioStandard::HPAE; + +static const uint8_t* RAW_DATA = nullptr; +static size_t g_dataSize = 0; +static size_t g_pos; +const size_t THRESHOLD = 10; +static int32_t NUM_2 = 2; +static std::string g_rootPath = "/data/"; +constexpr int32_t TEST_SLEEP_TIME_20 = 20; +constexpr int32_t TEST_SLEEP_TIME_40 = 40; +constexpr int32_t FRAME_LENGTH = 882; +constexpr int32_t TEST_STREAM_SESSION_ID = 123456; +constexpr int32_t TEST_RENDER_SESSION_ID = 123457; + +typedef void (*TestFuncs)(); + +vector AudioSpatializationSceneTypeVec { + SPATIALIZATION_SCENE_TYPE_DEFAULT, + SPATIALIZATION_SCENE_TYPE_MUSIC, + SPATIALIZATION_SCENE_TYPE_MOVIE, + SPATIALIZATION_SCENE_TYPE_AUDIOBOOK, + SPATIALIZATION_SCENE_TYPE_MAX, +}; + +vector DeviceTypeVec = { + DEVICE_TYPE_NONE, + DEVICE_TYPE_INVALID, + DEVICE_TYPE_EARPIECE, + DEVICE_TYPE_SPEAKER, + DEVICE_TYPE_WIRED_HEADSET, + DEVICE_TYPE_WIRED_HEADPHONES, + DEVICE_TYPE_BLUETOOTH_SCO, + DEVICE_TYPE_BLUETOOTH_A2DP, + DEVICE_TYPE_BLUETOOTH_A2DP_IN, + DEVICE_TYPE_MIC, + DEVICE_TYPE_WAKEUP, + DEVICE_TYPE_USB_HEADSET, + DEVICE_TYPE_DP, + DEVICE_TYPE_REMOTE_CAST, + DEVICE_TYPE_USB_DEVICE, + DEVICE_TYPE_ACCESSORY, + DEVICE_TYPE_REMOTE_DAUDIO, + DEVICE_TYPE_HDMI, + DEVICE_TYPE_LINE_DIGITAL, + DEVICE_TYPE_NEARLINK, + DEVICE_TYPE_NEARLINK_IN, + DEVICE_TYPE_FILE_SINK, + DEVICE_TYPE_FILE_SOURCE, + DEVICE_TYPE_EXTERN_CABLE, + DEVICE_TYPE_DEFAULT, + DEVICE_TYPE_USB_ARM_HEADSET, + DEVICE_TYPE_MAX, +}; + +vector DeviceClassList = { + "primary", + "usb", + "a2dp", + "file_io", + "remote", + "accessory", + "dp", + "hearing_aid", + "a2dp_fast", + "remote_offload", + "multichannel" + "dp_multichannel", + "primary_direct_voip", + "primary_mmap_voip", + "offload", + "test", + "", +} +vector HpaeStreamClassTypeVec = { + HPAE_STREAM_CLASS_TYPE_INVALID, + HPAE_STREAM_CLASS_TYPE_PLAY, + HPAE_STREAM_CLASS_TYPE_RECORD, +}; + +template +T GetData() +{ + T object {}; + size_t objectSize = sizeof(object); + if (RAW_DATA == nullptr || objectSize > g_dataSize - g_pos) { + return object; + } + errno_t ret = memcpy_s(&object, objectSize, RAW_DATA + g_pos, objectSize); + if (ret != EOK) { + return {}; + } + g_pos += objectSize; + return object; +} + +template +uint32_t GetArrLength(T& arr) +{ + if (arr == nullptr) { + AUDIO_INFO_LOG("%{public}s: The array length is equal to 0", __func__); + return 0; + } + return sizeof(arr) / sizeof(arr[0]); +} + +AudioModuleInfo GetSinkAudioModeInfo(std::string name = "Speaker_File") +{ + AudioModuleInfo audioModuleInfo; + audioModuleInfo.lib = "libmodule-hdi-sink.z.so"; + audioModuleInfo.channels = "2"; + audioModuleInfo.rate = "48000"; + audioModuleInfo.name = name; + audioModuleInfo.adapterName = "file_io"; + audioModuleInfo.className = "file_io"; + audioModuleInfo.bufferSize = "7680"; + audioModuleInfo.format = "s32le"; + audioModuleInfo.fixedLatency = "1"; + audioModuleInfo.offloadEnable = "0"; + audioModuleInfo.networkId = "LocalDevice"; + audioModuleInfo.fileName = g_rootPath + audioModuleInfo.adapterName + "_" + audioModuleInfo.rate + "_" + + audioModuleInfo.channels + "_" + audioModuleInfo.format + ".pcm"; + std::stringstream typeValue; + typeValue << static_cast(DEVICE_TYPE_SPEAKER); + audioModuleInfo.deviceType = typeValue.str(); + return audioModuleInfo; +} + +void WaitForMsgProcessing(std::shared_ptr &hpaeManager) +{ + int waitCount = 0; + while (hpaeManager->IsMsgProcessing()) { + std::this_thread::sleep_for(std::chrono::milliseconds(TEST_SLEEP_TIME_20)); + } + std::this_thread::sleep_for(std::chrono::milliseconds(TEST_SLEEP_TIME_40)); +} + +HPAE::HpaeStreamInfo GetRenderStreamInfo() +{ + HPAE::HpaeStreamInfo streamInfo; + streamInfo.channels = STEREO; + streamInfo.samplingRate = SAMPLE_RATE_44100; + streamInfo.format = SAMPLE_S16LE; + streamInfo.frameLen = FRAME_LENGTH; + streamInfo.sessionId = TEST_RENDER_SESSION_ID; + streamInfo.streamType = STREAM_MUSIC; + streamInfo.streamClassType = HPAE::HPAE_STREAM_CLASS_TYPE_PLAY; + return streamInfo; +} + +AudioModuleInfo GetSourceAudioModeInfo(std::string name = "mic") +{ + AudioModuleInfo audioModuleInfo; + audioModuleInfo.lib = "libmodule-hdi-source.z.so"; + audioModuleInfo.channels = "2"; + audioModuleInfo.rate = "48000"; + audioModuleInfo.name = name; + audioModuleInfo.adapterName = "file_io"; + audioModuleInfo.className = "file_io"; + audioModuleInfo.bufferSize = "3840"; + audioModuleInfo.format = "s16le"; + audioModuleInfo.fixedLatency = "1"; + audioModuleInfo.offloadEnable = "0"; + audioModuleInfo.networkId = "LocalDevice"; + audioModuleInfo.fileName = g_rootPath + "source_" + audioModuleInfo.adapterName + "_" + audioModuleInfo.rate + "_" + + audioModuleInfo.channels + "_" + audioModuleInfo.format + ".pcm"; + std::stringstream typeValue; + typeValue << static_cast(DEVICE_TYPE_FILE_SOURCE); + audioModuleInfo.deviceType = typeValue.str(); + return audioModuleInfo; +} + +HPAE::HpaeStreamInfo GetCaptureStreamInfo() +{ + HPAE::HpaeStreamInfo streamInfo; + streamInfo.channels = STEREO; + streamInfo.samplingRate = SAMPLE_RATE_48000; + streamInfo.format = SAMPLE_S16LE; + streamInfo.frameLen = FRAME_LENGTH; + streamInfo.sessionId = TEST_STREAM_SESSION_ID; + streamInfo.streamType = STREAM_MUSIC; + streamInfo.streamClassType = HPAE::HPAE_STREAM_CLASS_TYPE_RECORD; + return streamInfo; +} + +void HpaeManagerStreamFuzzTest::SetUp1() +{ + hpaeManager_ = std::make_shared(); + hpaeManager_->Init(); + std::shared_ptr callback = std::make_shared(); + hpaeManager_->RegisterSerivceCallback(callback); + AudioModuleInfo sinkAudioModuleInfo = GetSinkAudioModeInfo(); + hpaeManager_->OpenAudioPort(sinkAudioModuleInfo); + WaitForMsgProcessing(hpaeManager_); + int32_t sinkPortId = callback->GetPortId(); + AudioModuleInfo sourceAudioModuleInfo = GetSourceAudioModeInfo(); + hpaeManager_->OpenAudioPort(sourceAudioModuleInfo); + WaitForMsgProcessing(hpaeManager_); + int32_t sourcePortId = callback->GetPortId(); + std::shared_ptr dumpCallback = + std::make_shared(); + hpaeManager_->RegisterHpaeDumpCallback(dumpCallback); + HpaeStreamInfo rendererStreamInfo = GetRenderStreamInfo(); + hpaeManager_->CreateStream(rendererStreamInfo); + HpaeStreamInfo streamInfo = GetCaptureStreamInfo(); + hpaeManager_->CreateStream(streamInfo); + sourceNameList_ = {"mic", "test"}; + sinkNameList_ = {"Speaker_File", "test"}; + sourceOutputIdList_ = {streamInfo.sessionId, GetData(); + hpaeManager_->Init(); + std::shared_ptr callback = std::make_shared(); + hpaeManager_->RegisterSerivceCallback(callback); + audioPortNameList_ = {"Speaker_File", "mic", "test"}; + libList_ = {"libmodule-hdi-source.z.so", "libmodule-inner-capturer-sink.z.so", "test"}; +} + +void HpaeManagerStreamFuzzTest::SetUp3() +{ + hpaeManager_ = std::make_shared(); + hpaeManager_->Init(); + std::shared_ptr callback = std::make_shared(); + hpaeManager_->RegisterSerivceCallback(callback); + AudioModuleInfo sinkAudioModuleInfo = GetSinkAudioModeInfo(); + hpaeManager_->OpenAudioPort(sinkAudioModuleInfo); + audioPortNameList_ = {"Speaker_File", "mic", "test"}; + libList_ = {"libmodule-hdi-source.z.so", "libmodule-inner-capturer-sink.z.so", "test"}; +} + +void TearDown() +{ + hpaeManager_->DeInit(); +} +void HpaeManagerStreamFuzzTest::HpaeCaptureStreamManagerMoveFuzzTest() +{ + SetUp1(); + uint32_t sessionId = sourceOutputIdList_[GetData() % sourceOutputIdList_.size()]; + uint32_t sourceIndex = GetData(); + std::string sourceName = sourceNameList_[GetData() % sourceOutputIdList_.size()]; + hpaeManager_->MoveSourceOutputByIndexOrName(sessionId, sourceIndex, sourceName); + TearDown(); +} + +void HpaeManagerStreamFuzzTest::HpaeRenderStreamManagerMoveFuzzTest() +{ + SetUp1(); + uint32_t sessionId = sinkInputIdList_[GetData() % sinkInputIdList_.size()]; + uint32_t sinkIndex = GetData(); + std::string sinkName = sinkNameList_[GetData() % sinkInputIdList_.size()]; + hpaeManager_->MoveSinkInputByIndexOrName(sessionId, sinkIndex, sinkName); + TearDown(); +} + +void HpaeManagerStreamFuzzTest::HpaeRenderOpenAudioPortFuzzTest() +{ + SetUp2(); + AudioModuleInfo audioModuleInfo = GetSinkAudioModeInfo(); + hpaeManager_->OpenAudioPort(audioModuleInfo); + audioModuleInfo.lib = libList_[GetData() % libList_.size()]; + audioModuleInfo.name = audioPortNameList_[GetData() % libList_.size()]; + audioModuleInfo.class_name = DeviceClassList[GetData() % DeviceClassList.size()]; + hpaeManager_->OpenAudioPort(audioModuleInfo) + TearDown(); +} + +void HpaeManagerStreamFuzzTest::HpaeCaptureOpenAudioPortFuzzTest() +{ + SetUp2(); + AudioModuleInfo audioModuleInfo = GetSourceAudioModeInfo(); + hpaeManager_->OpenAudioPort(audioModuleInfo); + audioModuleInfo .lib = libList_[GetData() % libList_.size()]; + audioModuleInfo.name = audioPortNameList_[GetData() % libList_.size()]; + DeviceType deviceType = DeviceTypeVec[GetData() % DeviceTypeVec.size()]; + audioModuleInfo.class_name = DeviceClassList[GetData() % DeviceClassList.size()]; + hpaeManager_->OpenAudioPort(audioModuleInfo) + TearDown(); +} + +void HpaeManagerStreamFuzzTest::OpenAudioPortFuzzTest() +{ + SetUp2(); + AudioModuleInfo audioModuleInfo = GetSinkAudioModeInfo(); + hpaeManager_->OpenAudioPort(audioModuleInfo); + audioModuleInfo.lib = libList_[GetData() % libList_.size()]; + audioModuleInfo.name = audioPortNameList_[GetData() % libList_.size()]; + DeviceType deviceType = DeviceTypeVec[GetData() % DeviceTypeVec.size()]; + audioModuleInfo.class_name = DeviceClassList[GetData() % DeviceClassList.size()]; + hpaeManager_->OpenAudioPort() + TearDown(); +} + +void HpaeManagerStreamFuzzTest::HpaeRenderReloadAudioPortFuzzTest() +{ + SetUp3(); + AudioModuleInfo audioModuleInfo = GetSinkAudioModeInfo(); + audioModuleInfo.lib = libList_[GetData() % libList_.size()]; + audioModuleInfo.name = audioPortNameList_[GetData() % libList_.size()]; + audioModuleInfo.class_name = DeviceClassList[GetData() % DeviceClassList.size()]; + hpaeManager_->ReloadAudioPort(audioModuleInfo) + TearDown(); +} + +void HpaeRenderStreamManagerMoveFuzzTest() +{ + HpaeManagerStreamFuzzTest t; + t.HpaeRenderStreamManagerMoveFuzzTest(); +} + +void HpaeCaptureStreamManagerMoveFuzzTest() +{ + HpaeManagerStreamFuzzTest t; + t.HpaeCaptureStreamManagerMoveFuzzTest(); +} + +void HpaeRenderOpenAudioPortFuzzTest() +{ + HpaeManagerStreamFuzzTest t; + t.HpaeRenderOpenAudioPortFuzzTest(); +} + +void HpaeCaptureOpenAudioPortFuzzTest() +{ + HpaeManagerStreamFuzzTest t; + t.HpaeCaptureOpenAudioPortFuzzTest(); +} + +void HpaeRenderReloadAudioPortFuzzTest() +{ + HpaeManagerStreamFuzzTest t; + t.HpaeRenderReloadAudioPortFuzzTest(); +} + +TestFuncs g_testFuncs[] = { + HpaeRenderStreamManagerMoveFuzzTest, + HpaeCaptureStreamManagerMoveFuzzTest, + HpaeRenderOpenAudioPortFuzzTest, + HpaeCaptureOpenAudioPortFuzzTest, + HpaeRenderReloadAudioPortFuzzTest, +}; + +bool FuzzTest(const uint8_t* rawData, size_t size) +{ + if (rawData == nullptr) { + return false; + } + + // initialize data + RAW_DATA = rawData; + g_dataSize = size; + g_pos = 0; + + uint32_t code = GetData(); + uint32_t len = GetArrLength(g_testFuncs); + if (len > 0) { + g_testFuncs[code % len](); + } else { + AUDIO_INFO_LOG("%{public}s: The len length is equal to 0", __func__); + } + + return true; +} +} // namespace AudioStandard +} // namesapce OHOS + +/* Fuzzer entry point */ +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + if (size < OHOS::AudioStandard::THRESHOLD) { + return 0; + } + + OHOS::AudioStandard::FuzzTest(data, size); + return 0; +} diff --git a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h new file mode 100644 index 0000000000..0c06302826 --- /dev/null +++ b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h @@ -0,0 +1,212 @@ +/* + * 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. + */ +#ifndef HPAE_MANAGER_HIGH_RISK_INTERFACE_FUZZER_H +#define HPAE_MANAGER_HIGH_RISK_INTERFACE_FUZZER_H + +#include "audio_service_hpae_callback.h" +#include "audio_info.h" +#include "hpae_manager.h" +using namespace OHOS::AudioStandard::HPAE; +class HpaeAudioServiceCallbackFuzzTest : public OHOS::AudioStandard::AudioServiceHpaeCallback { +public: + ~HpaeAudioServiceCallbackFuzzTest() override {} + + void OnOpenAudioPortCb(int32_t portId) override + { + portId_ = portId; + } + + void OnCloseAudioPortCb(int32_t result) override + { + closeAudioPortResult_ = result; + } + + void OnReloadAudioPortCb(int32_t portId) override + { + portId_ = portId; + } + + void OnSetSinkMuteCb(int32_t result) override + { + setSinkMuteResult_ = result; + } + + void OnGetAllSinkInputsCb(int32_t result, std::vector &sinkInputs) override + { + getAllSinkInputsResult_ = result; + sinkInputs_ = sinkInputs; + } + + void OnGetAllSourceOutputsCb(int32_t result, + std::vector &sourceOutputs) override + { + getAllSourceOutputsResult_ = result; + sourceOutputs_ = sourceOutputs; + } + + void OnGetAllSinksCb(int32_t result, std::vector &sinks) override + { + getAllSinksResult_ = result; + sinks_ = sinks; + } + + void OnMoveSinkInputByIndexOrNameCb(int32_t result) override + { + moveSinkInputByIndexOrNameResult_ = result; + } + + void OnMoveSourceOutputByIndexOrNameCb(int32_t result) override + { + moveSourceOutputByIndexOrNameResult_ = result; + } + + void OnSetSourceOutputMuteCb(int32_t result) override + { + setSourceOutputMuteResult_ = result; + } + + void OnGetAudioEffectPropertyCbV3(int32_t result) override + { + getAudioEffectPropertyResult_ = result; + } + + void OnGetAudioEffectPropertyCb(int32_t result) override + { + getAudioEffectPropertyResult_ = result; + } + + void OnGetAudioEnhancePropertyCbV3(int32_t result) override + { + getAudioEnhancePropertyResult_ = result; + } + + void OnGetAudioEnhancePropertyCb(int32_t result) override + { + getAudioEnhancePropertyResult_ = result; + } + + void HandleSourceAudioStreamRemoved(uint32_t sessionId) override {} + + int32_t GetPortId() const noexcept + { + return portId_; + } + + int32_t GetCloseAudioPortResult() const noexcept + { + return closeAudioPortResult_; + } + + int32_t GetSetSinkMuteResult() const noexcept + { + return setSinkMuteResult_; + } + + int32_t GetGetAllSinkInputsResult() const noexcept + { + return getAllSinkInputsResult_; + } + + int32_t GetGetAllSourceOutputsResult() const noexcept + { + return getAllSourceOutputsResult_; + } + + int32_t GetGetAllSinksResult() const noexcept + { + return getAllSinksResult_; + } + + int32_t GetMoveSinkInputByIndexOrNameResult() const noexcept + { + return moveSinkInputByIndexOrNameResult_; + } + + int32_t GetMoveSourceOutputByIndexOrNameResult() const noexcept + { + return moveSourceOutputByIndexOrNameResult_; + } + + int32_t GetSetSourceOutputMuteResult() const noexcept + { + return setSourceOutputMuteResult_; + } + + int32_t GetGetAudioEffectPropertyResult() const noexcept + { + return getAudioEffectPropertyResult_; + } + + int32_t GetGetAudioEnhancePropertyResult() const noexcept + { + return getAudioEnhancePropertyResult_; + } + + std::vector GetSinkInputs() const noexcept + { + return sinkInputs_; + } + + std::vector GetSourceOutputs() const noexcept + { + return sourceOutputs_; + } + + std::vector GetSinks() const noexcept + { + return sinks_; + } + +private: + int32_t portId_ = -1; + int32_t closeAudioPortResult_ = -1; + int32_t setSinkMuteResult_ = -1; + int32_t getAllSinkInputsResult_ = -1; + int32_t getAllSourceOutputsResult_ = -1; + int32_t getAllSinksResult_ = -1; + int32_t moveSinkInputByIndexOrNameResult_ = -1; + int32_t moveSourceOutputByIndexOrNameResult_ = -1; + int32_t setSourceOutputMuteResult_ = -1; + int32_t getAudioEffectPropertyResult_ = -1; + int32_t getAudioEnhancePropertyResult_ = -1; + std::vector sinkInputs_; + std::vector sourceOutputs_; + std::vector sinks_; +}; + +class HpaeManagerStreamFuzzTest { +public: + void SetUp1(); + void SetUp2(); + void TearDown(); + + void HpaeRenderStreamManagerMoveFuzzTest(); + void HpaeCaptureStreamManagerMoveFuzzTest(); + void HpaeRenderOpenAudioPortFuzzTest(); + void HpaeCaptureOpenAudioPortFuzzTest(); + std::shared_ptr hpaeManager_; + std::vecotr sourceNameList_; + std::vecotr sinkNameList_; + std::vecotr audioPortNameList_; + std::vecotr libList_; + std::vecotr sourceOutputIdList_; + std::vecotr sinkInputIdList_; + std::vecotr renderSessionIdList; + std::vecotr captureSessionIdList; + + + +} +#endif // HPAE_MANAGER_HIGH_RISK_INTERFACE_FUZZER_H \ No newline at end of file diff --git a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/project.xml b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/project.xml new file mode 100644 index 0000000000..66e1dcac47 --- /dev/null +++ b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/project.xml @@ -0,0 +1,25 @@ + + + + + + 1000 + + 300 + + 4096 + + -- Gitee From 7568c9fe786fba312005f403203560af36c73818 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=8B=E5=BF=97=E5=BA=86?= Date: Mon, 8 Sep 2025 17:07:39 +0800 Subject: [PATCH 2/6] bugfix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 蒋志庆 --- ...hpaemanager_high_risk_interface_fuzzer.cpp | 94 ++++++------------- .../hpaemanager_high_risk_interface_fuzzer.h | 10 +- 2 files changed, 32 insertions(+), 72 deletions(-) diff --git a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp index a0c6351b8c..581951d88d 100644 --- a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp +++ b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp @@ -143,8 +143,8 @@ AudioModuleInfo GetSinkAudioModeInfo(std::string name = "Speaker_File") audioModuleInfo.name = name; audioModuleInfo.adapterName = "file_io"; audioModuleInfo.className = "file_io"; - audioModuleInfo.bufferSize = "7680"; - audioModuleInfo.format = "s32le"; + audioModuleInfo.bufferSize = "3840"; + audioModuleInfo.format = "s16le"; audioModuleInfo.fixedLatency = "1"; audioModuleInfo.offloadEnable = "0"; audioModuleInfo.networkId = "LocalDevice"; @@ -213,7 +213,7 @@ HPAE::HpaeStreamInfo GetCaptureStreamInfo() return streamInfo; } -void HpaeManagerStreamFuzzTest::SetUp1() +void HpaeManagerFuzzTest::StreamSetUp() { hpaeManager_ = std::make_shared(); hpaeManager_->Init(); @@ -241,35 +241,28 @@ void HpaeManagerStreamFuzzTest::SetUp1() WaitForMsgProcessing(hpaeManager_); } -void HpaeManagerStreamFuzzTest::SetUp2() +void HpaeManagerFuzzTest::AudioPortSetUp() { hpaeManager_ = std::make_shared(); hpaeManager_->Init(); std::shared_ptr callback = std::make_shared(); hpaeManager_->RegisterSerivceCallback(callback); - audioPortNameList_ = {"Speaker_File", "mic", "test"}; - libList_ = {"libmodule-hdi-source.z.so", "libmodule-inner-capturer-sink.z.so", "test"}; -} - -void HpaeManagerStreamFuzzTest::SetUp3() -{ - hpaeManager_ = std::make_shared(); - hpaeManager_->Init(); - std::shared_ptr callback = std::make_shared(); - hpaeManager_->RegisterSerivceCallback(callback); - AudioModuleInfo sinkAudioModuleInfo = GetSinkAudioModeInfo(); + AudioModuleInfo sinkAudioModuleInfo = GetSinkAudioModeInfo(); hpaeManager_->OpenAudioPort(sinkAudioModuleInfo); + WaitForMsgProcessing(hpaeManager_); + AudioModuleInfo sourceAudioModuleInfo = GetSourceAudioModeInfo(); + hpaeManager_->OpenAudioPort(sourceAudioModuleInfo); audioPortNameList_ = {"Speaker_File", "mic", "test"}; - libList_ = {"libmodule-hdi-source.z.so", "libmodule-inner-capturer-sink.z.so", "test"}; + libList_ = {"libmodule-hdi-source.z.so", "libmodule-inner-capturer-sink.z.so", "libmodule-hdi-sink.z.so", "test"}; } void TearDown() { hpaeManager_->DeInit(); } -void HpaeManagerStreamFuzzTest::HpaeCaptureStreamManagerMoveFuzzTest() +void HpaeManagerFuzzTest::HpaeCaptureStreamManagerMoveFuzzTest() { - SetUp1(); + StreamSetUp(); uint32_t sessionId = sourceOutputIdList_[GetData() % sourceOutputIdList_.size()]; uint32_t sourceIndex = GetData(); std::string sourceName = sourceNameList_[GetData() % sourceOutputIdList_.size()]; @@ -277,9 +270,9 @@ void HpaeManagerStreamFuzzTest::HpaeCaptureStreamManagerMoveFuzzTest() TearDown(); } -void HpaeManagerStreamFuzzTest::HpaeRenderStreamManagerMoveFuzzTest() +void HpaeManagerFuzzTest::HpaeRenderStreamManagerMoveFuzzTest() { - SetUp1(); + StreamSetUp(); uint32_t sessionId = sinkInputIdList_[GetData() % sinkInputIdList_.size()]; uint32_t sinkIndex = GetData(); std::string sinkName = sinkNameList_[GetData() % sinkInputIdList_.size()]; @@ -287,47 +280,21 @@ void HpaeManagerStreamFuzzTest::HpaeRenderStreamManagerMoveFuzzTest() TearDown(); } -void HpaeManagerStreamFuzzTest::HpaeRenderOpenAudioPortFuzzTest() -{ - SetUp2(); - AudioModuleInfo audioModuleInfo = GetSinkAudioModeInfo(); - hpaeManager_->OpenAudioPort(audioModuleInfo); - audioModuleInfo.lib = libList_[GetData() % libList_.size()]; - audioModuleInfo.name = audioPortNameList_[GetData() % libList_.size()]; - audioModuleInfo.class_name = DeviceClassList[GetData() % DeviceClassList.size()]; - hpaeManager_->OpenAudioPort(audioModuleInfo) - TearDown(); -} - -void HpaeManagerStreamFuzzTest::HpaeCaptureOpenAudioPortFuzzTest() +void HpaeManagerFuzzTest::OpenAudioPortFuzzTest() { - SetUp2(); + AudioPortSetUp(); AudioModuleInfo audioModuleInfo = GetSourceAudioModeInfo(); hpaeManager_->OpenAudioPort(audioModuleInfo); - audioModuleInfo .lib = libList_[GetData() % libList_.size()]; - audioModuleInfo.name = audioPortNameList_[GetData() % libList_.size()]; - DeviceType deviceType = DeviceTypeVec[GetData() % DeviceTypeVec.size()]; - audioModuleInfo.class_name = DeviceClassList[GetData() % DeviceClassList.size()]; - hpaeManager_->OpenAudioPort(audioModuleInfo) - TearDown(); -} - -void HpaeManagerStreamFuzzTest::OpenAudioPortFuzzTest() -{ - SetUp2(); - AudioModuleInfo audioModuleInfo = GetSinkAudioModeInfo(); - hpaeManager_->OpenAudioPort(audioModuleInfo); audioModuleInfo.lib = libList_[GetData() % libList_.size()]; audioModuleInfo.name = audioPortNameList_[GetData() % libList_.size()]; - DeviceType deviceType = DeviceTypeVec[GetData() % DeviceTypeVec.size()]; audioModuleInfo.class_name = DeviceClassList[GetData() % DeviceClassList.size()]; hpaeManager_->OpenAudioPort() TearDown(); } -void HpaeManagerStreamFuzzTest::HpaeRenderReloadAudioPortFuzzTest() +void HpaeManagerFuzzTest::ReloadAudioPortFuzzTest() { - SetUp3(); + AudioPortSetUp(); AudioModuleInfo audioModuleInfo = GetSinkAudioModeInfo(); audioModuleInfo.lib = libList_[GetData() % libList_.size()]; audioModuleInfo.name = audioPortNameList_[GetData() % libList_.size()]; @@ -338,40 +305,33 @@ void HpaeManagerStreamFuzzTest::HpaeRenderReloadAudioPortFuzzTest() void HpaeRenderStreamManagerMoveFuzzTest() { - HpaeManagerStreamFuzzTest t; + HpaeManagerFuzzTest t; t.HpaeRenderStreamManagerMoveFuzzTest(); } void HpaeCaptureStreamManagerMoveFuzzTest() { - HpaeManagerStreamFuzzTest t; + HpaeManagerFuzzTest t; t.HpaeCaptureStreamManagerMoveFuzzTest(); } -void HpaeRenderOpenAudioPortFuzzTest() -{ - HpaeManagerStreamFuzzTest t; - t.HpaeRenderOpenAudioPortFuzzTest(); -} - -void HpaeCaptureOpenAudioPortFuzzTest() +void OpenAudioPortFuzzTest() { - HpaeManagerStreamFuzzTest t; - t.HpaeCaptureOpenAudioPortFuzzTest(); + HpaeManagerFuzzTest t; + t.OpenAudioPortFuzzTest(); } -void HpaeRenderReloadAudioPortFuzzTest() +void ReloadAudioPortFuzzTest() { - HpaeManagerStreamFuzzTest t; - t.HpaeRenderReloadAudioPortFuzzTest(); + HpaeManagerFuzzTest t; + t.ReloadAudioPortFuzzTest(); } TestFuncs g_testFuncs[] = { HpaeRenderStreamManagerMoveFuzzTest, HpaeCaptureStreamManagerMoveFuzzTest, - HpaeRenderOpenAudioPortFuzzTest, - HpaeCaptureOpenAudioPortFuzzTest, - HpaeRenderReloadAudioPortFuzzTest, + OpenAudioPortFuzzTest, + ReloadAudioPortFuzzTest, }; bool FuzzTest(const uint8_t* rawData, size_t size) diff --git a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h index 0c06302826..1c682fdab6 100644 --- a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h +++ b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h @@ -186,16 +186,16 @@ private: std::vector sinks_; }; -class HpaeManagerStreamFuzzTest { +class HpaeManagerFuzzTest { public: - void SetUp1(); - void SetUp2(); + void StreamSetUp(); + void AudioPortSetUp(); void TearDown(); void HpaeRenderStreamManagerMoveFuzzTest(); void HpaeCaptureStreamManagerMoveFuzzTest(); - void HpaeRenderOpenAudioPortFuzzTest(); - void HpaeCaptureOpenAudioPortFuzzTest(); + void OpenAudioPortFuzzTest(); + void ReloadAudioPortFuzzTest(); std::shared_ptr hpaeManager_; std::vecotr sourceNameList_; std::vecotr sinkNameList_; -- Gitee From 212ca6b7ac9465ff91d55d0cae7767ce78bb7164 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=8B=E5=BF=97=E5=BA=86?= Date: Mon, 8 Sep 2025 19:40:15 +0800 Subject: [PATCH 3/6] bugfix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 蒋志庆 --- test/BUILD.gn | 2 +- ...hpaemanager_high_risk_interface_fuzzer.cpp | 17 ++++++------ .../hpaemanager_high_risk_interface_fuzzer.h | 26 +++++++++---------- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/test/BUILD.gn b/test/BUILD.gn index ec9f3045f6..8c1d68c43f 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -320,7 +320,7 @@ group("audio_fuzz_test") { "fuzztest/hpaemanagerstream_fuzzer:fuzztest", "fuzztest/hpaemixernode_fuzzer:fuzztest", "fuzztest/hpaemanagercontrol_fuzzer:fuzztest", - "fuzztest/hpaemanagerhighriskinterface_fuzzer", + "fuzztest/hpaemanagerhighriskinterface_fuzzer:fuzztest", "fuzztest/hpaenolockqueue_fuzzer:fuzztest", "fuzztest/hpaeoffloadrenderermanager_fuzzer:fuzztest", "fuzztest/hpaeoutputcluster_fuzzer:fuzztest", diff --git a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp index 581951d88d..227821c409 100644 --- a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp +++ b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp @@ -101,7 +101,8 @@ vector DeviceClassList = { "offload", "test", "", -} +}; + vector HpaeStreamClassTypeVec = { HPAE_STREAM_CLASS_TYPE_INVALID, HPAE_STREAM_CLASS_TYPE_PLAY, @@ -236,8 +237,8 @@ void HpaeManagerFuzzTest::StreamSetUp() hpaeManager_->CreateStream(streamInfo); sourceNameList_ = {"mic", "test"}; sinkNameList_ = {"Speaker_File", "test"}; - sourceOutputIdList_ = {streamInfo.sessionId, GetData()}; + sinkInputIdList_ = {rendererStreamInfo.sessionId, GetData()}; WaitForMsgProcessing(hpaeManager_); } @@ -256,7 +257,7 @@ void HpaeManagerFuzzTest::AudioPortSetUp() libList_ = {"libmodule-hdi-source.z.so", "libmodule-inner-capturer-sink.z.so", "libmodule-hdi-sink.z.so", "test"}; } -void TearDown() +void HpaeManagerFuzzTest::TearDown() { hpaeManager_->DeInit(); } @@ -287,8 +288,8 @@ void HpaeManagerFuzzTest::OpenAudioPortFuzzTest() hpaeManager_->OpenAudioPort(audioModuleInfo); audioModuleInfo.lib = libList_[GetData() % libList_.size()]; audioModuleInfo.name = audioPortNameList_[GetData() % libList_.size()]; - audioModuleInfo.class_name = DeviceClassList[GetData() % DeviceClassList.size()]; - hpaeManager_->OpenAudioPort() + audioModuleInfo.className = DeviceClassList[GetData() % DeviceClassList.size()]; + hpaeManager_->OpenAudioPort(audioModuleInfo); TearDown(); } @@ -298,8 +299,8 @@ void HpaeManagerFuzzTest::ReloadAudioPortFuzzTest() AudioModuleInfo audioModuleInfo = GetSinkAudioModeInfo(); audioModuleInfo.lib = libList_[GetData() % libList_.size()]; audioModuleInfo.name = audioPortNameList_[GetData() % libList_.size()]; - audioModuleInfo.class_name = DeviceClassList[GetData() % DeviceClassList.size()]; - hpaeManager_->ReloadAudioPort(audioModuleInfo) + audioModuleInfo.className = DeviceClassList[GetData() % DeviceClassList.size()]; + hpaeManager_->ReloadAudioPort(audioModuleInfo); TearDown(); } diff --git a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h index 1c682fdab6..de85032c07 100644 --- a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h +++ b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h @@ -18,7 +18,8 @@ #include "audio_service_hpae_callback.h" #include "audio_info.h" #include "hpae_manager.h" -using namespace OHOS::AudioStandard::HPAE; +namespace OHOS { +namespace AudioStandard { class HpaeAudioServiceCallbackFuzzTest : public OHOS::AudioStandard::AudioServiceHpaeCallback { public: ~HpaeAudioServiceCallbackFuzzTest() override {} @@ -196,17 +197,16 @@ public: void HpaeCaptureStreamManagerMoveFuzzTest(); void OpenAudioPortFuzzTest(); void ReloadAudioPortFuzzTest(); - std::shared_ptr hpaeManager_; - std::vecotr sourceNameList_; - std::vecotr sinkNameList_; - std::vecotr audioPortNameList_; - std::vecotr libList_; - std::vecotr sourceOutputIdList_; - std::vecotr sinkInputIdList_; - std::vecotr renderSessionIdList; - std::vecotr captureSessionIdList; - - - + std::shared_ptr hpaeManager_; + std::vector sourceNameList_; + std::vector sinkNameList_; + std::vector audioPortNameList_; + std::vector libList_; + std::vector sourceOutputIdList_; + std::vector sinkInputIdList_; + std::vector renderSessionIdList; + std::vector captureSessionIdList; } +} // namespace AudioStandard +} // namespace OHOS #endif // HPAE_MANAGER_HIGH_RISK_INTERFACE_FUZZER_H \ No newline at end of file -- Gitee From 1adf91808a00bb8fc4b5a2f2e8374d61fbb88a6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=8B=E5=BF=97=E5=BA=86?= Date: Mon, 8 Sep 2025 19:56:02 +0800 Subject: [PATCH 4/6] bugfix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 蒋志庆 --- .../hpaemanager_high_risk_interface_fuzzer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp index 227821c409..9dec9f443f 100644 --- a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp +++ b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp @@ -248,7 +248,7 @@ void HpaeManagerFuzzTest::AudioPortSetUp() hpaeManager_->Init(); std::shared_ptr callback = std::make_shared(); hpaeManager_->RegisterSerivceCallback(callback); - AudioModuleInfo sinkAudioModuleInfo = GetSinkAudioModeInfo(); + AudioModuleInfo sinkAudioModuleInfo = GetSinkAudioModeInfo(); hpaeManager_->OpenAudioPort(sinkAudioModuleInfo); WaitForMsgProcessing(hpaeManager_); AudioModuleInfo sourceAudioModuleInfo = GetSourceAudioModeInfo(); -- Gitee From 15005c6f7f9835b0b6ee752af672dcf56d768fd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=8B=E5=BF=97=E5=BA=86?= Date: Mon, 8 Sep 2025 21:04:24 +0800 Subject: [PATCH 5/6] bugfix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 蒋志庆 --- .../hpaemanager_high_risk_interface_fuzzer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h index de85032c07..dfc0f27c2a 100644 --- a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h +++ b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.h @@ -206,7 +206,7 @@ public: std::vector sinkInputIdList_; std::vector renderSessionIdList; std::vector captureSessionIdList; -} +}; } // namespace AudioStandard } // namespace OHOS #endif // HPAE_MANAGER_HIGH_RISK_INTERFACE_FUZZER_H \ No newline at end of file -- Gitee From f302261e4c2eb7c74a4fc96abd30ace8955094ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=8B=E5=BF=97=E5=BA=86?= Date: Tue, 9 Sep 2025 15:16:08 +0800 Subject: [PATCH 6/6] bugfix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 蒋志庆 --- .../hpaemanager_high_risk_interface_fuzzer.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp index 9dec9f443f..598294438e 100644 --- a/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp +++ b/test/fuzztest/hpaemanagerhighriskinterface_fuzzer/hpaemanager_high_risk_interface_fuzzer.cpp @@ -266,7 +266,7 @@ void HpaeManagerFuzzTest::HpaeCaptureStreamManagerMoveFuzzTest() StreamSetUp(); uint32_t sessionId = sourceOutputIdList_[GetData() % sourceOutputIdList_.size()]; uint32_t sourceIndex = GetData(); - std::string sourceName = sourceNameList_[GetData() % sourceOutputIdList_.size()]; + std::string sourceName = sourceNameList_[GetData() % sourceNameList_.size()]; hpaeManager_->MoveSourceOutputByIndexOrName(sessionId, sourceIndex, sourceName); TearDown(); } @@ -276,7 +276,7 @@ void HpaeManagerFuzzTest::HpaeRenderStreamManagerMoveFuzzTest() StreamSetUp(); uint32_t sessionId = sinkInputIdList_[GetData() % sinkInputIdList_.size()]; uint32_t sinkIndex = GetData(); - std::string sinkName = sinkNameList_[GetData() % sinkInputIdList_.size()]; + std::string sinkName = sinkNameList_[GetData() % sinkNameList_.size()]; hpaeManager_->MoveSinkInputByIndexOrName(sessionId, sinkIndex, sinkName); TearDown(); } @@ -287,7 +287,7 @@ void HpaeManagerFuzzTest::OpenAudioPortFuzzTest() AudioModuleInfo audioModuleInfo = GetSourceAudioModeInfo(); hpaeManager_->OpenAudioPort(audioModuleInfo); audioModuleInfo.lib = libList_[GetData() % libList_.size()]; - audioModuleInfo.name = audioPortNameList_[GetData() % libList_.size()]; + audioModuleInfo.name = audioPortNameList_[GetData() % audioPortNameList_.size()]; audioModuleInfo.className = DeviceClassList[GetData() % DeviceClassList.size()]; hpaeManager_->OpenAudioPort(audioModuleInfo); TearDown(); @@ -298,7 +298,7 @@ void HpaeManagerFuzzTest::ReloadAudioPortFuzzTest() AudioPortSetUp(); AudioModuleInfo audioModuleInfo = GetSinkAudioModeInfo(); audioModuleInfo.lib = libList_[GetData() % libList_.size()]; - audioModuleInfo.name = audioPortNameList_[GetData() % libList_.size()]; + audioModuleInfo.name = audioPortNameList_[GetData() % audioPortNameList_.size()]; audioModuleInfo.className = DeviceClassList[GetData() % DeviceClassList.size()]; hpaeManager_->ReloadAudioPort(audioModuleInfo); TearDown(); -- Gitee