diff --git a/services/audiomanager/managersink/src/daudio_sink_manager.cpp b/services/audiomanager/managersink/src/daudio_sink_manager.cpp index 1e671e06f15c4486abbf22cfeec208788c60c169..f6b8d59377db4c6f01b01fd644d7ce67a84b2041 100644 --- a/services/audiomanager/managersink/src/daudio_sink_manager.cpp +++ b/services/audiomanager/managersink/src/daudio_sink_manager.cpp @@ -491,6 +491,10 @@ int32_t DAudioSinkManager::GetDeviceSecurityLevel(const std::string &udid) #ifdef DEVICE_SECURITY_LEVEL_ENABLE DeviceIdentify devIdentify; devIdentify.length = DEVICE_ID_MAX_LEN; + if (udid.size() >= DEVICE_ID_MAX_LEN) { + DHLOGE("udid size exceeds DEVICE_ID_MAX_LEN"); + return DEFAULT_DEVICE_SECURITY_LEVEL; + } int32_t ret = memcpy_s(devIdentify.identity, DEVICE_ID_MAX_LEN, udid.c_str(), DEVICE_ID_MAX_LEN); if (ret != DH_SUCCESS) { DHLOGE("Str copy failed %{public}d", ret); diff --git a/services/audiomanager/managersource/src/dmic_dev.cpp b/services/audiomanager/managersource/src/dmic_dev.cpp index a1cbbfc8c62aa5d330983f0b7882e98f40cb3834..daac1b46213716f3bbf4fa82b90b0aa6c3eb03d0 100644 --- a/services/audiomanager/managersource/src/dmic_dev.cpp +++ b/services/audiomanager/managersource/src/dmic_dev.cpp @@ -625,6 +625,10 @@ void DMicDev::FillJitterQueue() while (isEnqueueRunning_.load()) { { std::lock_guard lock(dataQueueMtx_); + if (paramHDF_.period == 0) { + DHLOGE("DMicDev paramHDF_.period is zero"); + break; + } if (dataQueue_.size() >= (LOW_LATENCY_JITTER_TIME_MS / paramHDF_.period)) { break; } diff --git a/services/audiomanager/test/unittest/sourcedevice/src/dmic_dev_test.cpp b/services/audiomanager/test/unittest/sourcedevice/src/dmic_dev_test.cpp index a8d44f81ed7c05f307a3b1c1246616128f891edd..399f9095f117f0d4d7dc1efb71ab519f5b43daa9 100644 --- a/services/audiomanager/test/unittest/sourcedevice/src/dmic_dev_test.cpp +++ b/services/audiomanager/test/unittest/sourcedevice/src/dmic_dev_test.cpp @@ -339,7 +339,10 @@ HWTEST_F(DMicDevTest, ReadStreamData_001, TestSize.Level1) } mic_->isEnqueueRunning_ = true; mic_->FillJitterQueue(); - + mic_->paramHDF_.period = 0; + mic_->FillJitterQueue(); + mic_->paramHDF_.period = 1; + mic_->FillJitterQueue(); std::shared_ptr readData1 = nullptr; EXPECT_EQ(DH_SUCCESS, mic_->ReadStreamData(streamId_, readData1));