From 14937a7d45d09132041e32c480937f78b3689a41 Mon Sep 17 00:00:00 2001 From: heyabinghyb Date: Fri, 25 Jul 2025 18:00:00 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=91=8A=E8=AD=A6=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: heyabinghyb --- frameworks/native/ohaudio/OHAudioRoutingManager.cpp | 1 + frameworks/native/ohaudio/OHAudioSessionManager.cpp | 1 + frameworks/native/ohaudio/OHAudioStreamBuilder.cpp | 1 + .../pulseaudio/modules/capturer/module_inner_capturer_sink.c | 2 +- .../server/domain/device/src/audio_device_common.cpp | 4 ++++ services/audio_service/server/src/audio_endpoint.cpp | 2 ++ .../audio_service/server/src/hpae_renderer_stream_impl.cpp | 2 +- 7 files changed, 11 insertions(+), 2 deletions(-) diff --git a/frameworks/native/ohaudio/OHAudioRoutingManager.cpp b/frameworks/native/ohaudio/OHAudioRoutingManager.cpp index 6cef6f7d69..0459e21dbe 100644 --- a/frameworks/native/ohaudio/OHAudioRoutingManager.cpp +++ b/frameworks/native/ohaudio/OHAudioRoutingManager.cpp @@ -75,6 +75,7 @@ OH_AudioCommon_Result OH_AudioManager_GetAudioRoutingManager(OH_AudioRoutingMana OHAudioRoutingManager* ohAudioRoutingManager = OHAudioRoutingManager::GetInstance(); if (audioRoutingManager == nullptr) { AUDIO_ERR_LOG("audioRoutingManager is nullptr!"); + return AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM; } *audioRoutingManager = (OH_AudioRoutingManager*)ohAudioRoutingManager; return AUDIOCOMMON_RESULT_SUCCESS; diff --git a/frameworks/native/ohaudio/OHAudioSessionManager.cpp b/frameworks/native/ohaudio/OHAudioSessionManager.cpp index 263669e722..c3efbd94d7 100644 --- a/frameworks/native/ohaudio/OHAudioSessionManager.cpp +++ b/frameworks/native/ohaudio/OHAudioSessionManager.cpp @@ -38,6 +38,7 @@ OH_AudioCommon_Result OH_AudioManager_GetAudioSessionManager(OH_AudioSessionMana OHAudioSessionManager* ohAudioSessionManager = OHAudioSessionManager::GetInstance(); if (audioSessionManager == nullptr) { AUDIO_ERR_LOG("audioSessionManager is nullptr"); + return AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM; } *audioSessionManager = reinterpret_cast(ohAudioSessionManager); return AUDIOCOMMON_RESULT_SUCCESS; diff --git a/frameworks/native/ohaudio/OHAudioStreamBuilder.cpp b/frameworks/native/ohaudio/OHAudioStreamBuilder.cpp index 10b133e103..527fed1d4c 100644 --- a/frameworks/native/ohaudio/OHAudioStreamBuilder.cpp +++ b/frameworks/native/ohaudio/OHAudioStreamBuilder.cpp @@ -139,6 +139,7 @@ OH_AudioStream_Result OH_AudioStreamBuilder_Create(OH_AudioStreamBuilder **build { if (builder == nullptr) { AUDIO_ERR_LOG("builder is nullptr"); + return AUDIOSTREAM_ERROR_INVALID_PARAM; } int32_t streamType = type == AUDIOSTREAM_TYPE_RENDERER ? RENDERER_TYPE : CAPTURER_TYPE; diff --git a/frameworks/native/pulseaudio/modules/capturer/module_inner_capturer_sink.c b/frameworks/native/pulseaudio/modules/capturer/module_inner_capturer_sink.c index 561c9253be..56443737e9 100644 --- a/frameworks/native/pulseaudio/modules/capturer/module_inner_capturer_sink.c +++ b/frameworks/native/pulseaudio/modules/capturer/module_inner_capturer_sink.c @@ -176,7 +176,7 @@ static void ProcessRewind(struct userdata *u, pa_usec_t now) CHECK_AND_RETURN_LOG(u != NULL, "u is null"); rewindNbytes = u->sink->thread_info.rewind_nbytes; - if (!PA_SINK_IS_OPENED(u->sink->thread_info.state) || rewindNbytes <= 0) { + if (!PA_SINK_IS_OPENED(u->sink->thread_info.state) || rewindNbytes == 0) { goto do_nothing; } AUDIO_DEBUG_LOG("Requested to rewind %lu bytes.", (unsigned long) rewindNbytes); diff --git a/services/audio_policy/server/domain/device/src/audio_device_common.cpp b/services/audio_policy/server/domain/device/src/audio_device_common.cpp index ac12e5dd1c..45b5826ca3 100644 --- a/services/audio_policy/server/domain/device/src/audio_device_common.cpp +++ b/services/audio_policy/server/domain/device/src/audio_device_common.cpp @@ -207,6 +207,10 @@ std::vector> AudioDeviceCommon::GetPrefer if (networkId == LOCAL_NETWORK_ID) { std::shared_ptr desc = audioRouterCenter_.FetchInputDevice(captureInfo.sourceType, -1); + if (desc == nullptr) { + AUDIO_ERR_LOG("desc is nullptr"); + return {}; + } if (desc->deviceType_ == DEVICE_TYPE_NONE && (captureInfo.sourceType == SOURCE_TYPE_PLAYBACK_CAPTURE || captureInfo.sourceType == SOURCE_TYPE_REMOTE_CAST)) { desc->deviceType_ = DEVICE_TYPE_INVALID; diff --git a/services/audio_service/server/src/audio_endpoint.cpp b/services/audio_service/server/src/audio_endpoint.cpp index fa6e391699..49dc8863d2 100644 --- a/services/audio_service/server/src/audio_endpoint.cpp +++ b/services/audio_service/server/src/audio_endpoint.cpp @@ -1541,6 +1541,7 @@ void AudioEndpointInner::GetAllReadyProcessDataSub(size_t i, void AudioEndpointInner::HandleMuteWriteData(BufferDesc &bufferDesc, int32_t index) { + CHECK_AND_RETURN_LOG(static_cast(index) <= (processList_.size() - 1), "invalid index"); auto tempProcess = processList_[index]; CHECK_AND_RETURN_LOG(tempProcess, "tempProcess is nullptr"); tempProcess->AddNormalFrameSize(); @@ -2254,6 +2255,7 @@ bool AudioEndpointInner::IsInvalidBuffer(uint8_t *buffer, size_t bufferSize, Aud void AudioEndpointInner::WriteMuteDataSysEvent(uint8_t *buffer, size_t bufferSize, int32_t index) { + CHECK_AND_RETURN_LOG(static_cast(index) <= (processList_.size() - 1), "invalid index"); auto tempProcess = processList_[index]; CHECK_AND_RETURN_LOG(tempProcess, "tempProcess is nullptr"); if (IsInvalidBuffer(buffer, bufferSize, processList_[index]->GetStreamInfo().format)) { diff --git a/services/audio_service/server/src/hpae_renderer_stream_impl.cpp b/services/audio_service/server/src/hpae_renderer_stream_impl.cpp index c34158889d..39bcf6c852 100644 --- a/services/audio_service/server/src/hpae_renderer_stream_impl.cpp +++ b/services/audio_service/server/src/hpae_renderer_stream_impl.cpp @@ -95,7 +95,7 @@ int32_t HpaeRendererStreamImpl::InitParams(const std::string &deviceName) streamInfo.streamClassType = HPAE_STREAM_CLASS_TYPE_PLAY; streamInfo.uid = processConfig_.appInfo.appUid; streamInfo.pid = processConfig_.appInfo.appPid; - streamInfo.tokenId = processConfig_.appInfo.appTokenId; + streamInfo.tokenId = static_cast(processConfig_.appInfo.appTokenId); effectMode_ = processConfig_.rendererInfo.effectMode; streamInfo.effectInfo.effectMode = (effectMode_ != EFFECT_DEFAULT && effectMode_ != EFFECT_NONE) ? EFFECT_DEFAULT : static_cast(effectMode_); -- Gitee From ec2c07ab206c67b6d762ce4ec603425171dfa395 Mon Sep 17 00:00:00 2001 From: heyabinghyb Date: Sat, 26 Jul 2025 11:23:19 +0000 Subject: [PATCH 2/4] update frameworks/native/ohaudio/OHAudioRoutingManager.cpp. Signed-off-by: heyabinghyb --- frameworks/native/ohaudio/OHAudioRoutingManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/native/ohaudio/OHAudioRoutingManager.cpp b/frameworks/native/ohaudio/OHAudioRoutingManager.cpp index 0459e21dbe..cdea433053 100644 --- a/frameworks/native/ohaudio/OHAudioRoutingManager.cpp +++ b/frameworks/native/ohaudio/OHAudioRoutingManager.cpp @@ -75,7 +75,7 @@ OH_AudioCommon_Result OH_AudioManager_GetAudioRoutingManager(OH_AudioRoutingMana OHAudioRoutingManager* ohAudioRoutingManager = OHAudioRoutingManager::GetInstance(); if (audioRoutingManager == nullptr) { AUDIO_ERR_LOG("audioRoutingManager is nullptr!"); - return AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM; + return AUDIOCOMMON_RESULT_SUCCESS; } *audioRoutingManager = (OH_AudioRoutingManager*)ohAudioRoutingManager; return AUDIOCOMMON_RESULT_SUCCESS; -- Gitee From 1a11240ee1aa6808841c56474d138e3cc57231ee Mon Sep 17 00:00:00 2001 From: heyabinghyb Date: Sat, 26 Jul 2025 11:24:04 +0000 Subject: [PATCH 3/4] update frameworks/native/ohaudio/OHAudioSessionManager.cpp. Signed-off-by: heyabinghyb --- frameworks/native/ohaudio/OHAudioSessionManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/native/ohaudio/OHAudioSessionManager.cpp b/frameworks/native/ohaudio/OHAudioSessionManager.cpp index c3efbd94d7..ac92ae9312 100644 --- a/frameworks/native/ohaudio/OHAudioSessionManager.cpp +++ b/frameworks/native/ohaudio/OHAudioSessionManager.cpp @@ -38,7 +38,7 @@ OH_AudioCommon_Result OH_AudioManager_GetAudioSessionManager(OH_AudioSessionMana OHAudioSessionManager* ohAudioSessionManager = OHAudioSessionManager::GetInstance(); if (audioSessionManager == nullptr) { AUDIO_ERR_LOG("audioSessionManager is nullptr"); - return AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM; + return AUDIOCOMMON_RESULT_SUCCESS; } *audioSessionManager = reinterpret_cast(ohAudioSessionManager); return AUDIOCOMMON_RESULT_SUCCESS; -- Gitee From b61de112427861023594552d3580c1ac7059da15 Mon Sep 17 00:00:00 2001 From: heyabinghyb Date: Sat, 26 Jul 2025 11:24:53 +0000 Subject: [PATCH 4/4] update frameworks/native/ohaudio/OHAudioStreamBuilder.cpp. Signed-off-by: heyabinghyb --- frameworks/native/ohaudio/OHAudioStreamBuilder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/native/ohaudio/OHAudioStreamBuilder.cpp b/frameworks/native/ohaudio/OHAudioStreamBuilder.cpp index 527fed1d4c..0194e310d0 100644 --- a/frameworks/native/ohaudio/OHAudioStreamBuilder.cpp +++ b/frameworks/native/ohaudio/OHAudioStreamBuilder.cpp @@ -139,7 +139,7 @@ OH_AudioStream_Result OH_AudioStreamBuilder_Create(OH_AudioStreamBuilder **build { if (builder == nullptr) { AUDIO_ERR_LOG("builder is nullptr"); - return AUDIOSTREAM_ERROR_INVALID_PARAM; + return AUDIOSTREAM_SUCCESS; } int32_t streamType = type == AUDIOSTREAM_TYPE_RENDERER ? RENDERER_TYPE : CAPTURER_TYPE; -- Gitee