diff --git a/frameworks/native/ohaudio/OHAudioRoutingManager.cpp b/frameworks/native/ohaudio/OHAudioRoutingManager.cpp index 6cef6f7d69ae69247d6e34027e3fa9a9662d82b0..cdea43305334b0d910513bf2d8605750a315cf74 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_SUCCESS; } *audioRoutingManager = (OH_AudioRoutingManager*)ohAudioRoutingManager; return AUDIOCOMMON_RESULT_SUCCESS; diff --git a/frameworks/native/ohaudio/OHAudioSessionManager.cpp b/frameworks/native/ohaudio/OHAudioSessionManager.cpp index 263669e722c540436deabbc943e948b9ecf38f2f..ac92ae931285c8cecd8f0642528e9d5eaa91c8cf 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_SUCCESS; } *audioSessionManager = reinterpret_cast(ohAudioSessionManager); return AUDIOCOMMON_RESULT_SUCCESS; diff --git a/frameworks/native/ohaudio/OHAudioStreamBuilder.cpp b/frameworks/native/ohaudio/OHAudioStreamBuilder.cpp index 10b133e10344f4a281d96af12daf575b925b4a4c..0194e310d0150063824674141695778b82b00f61 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_SUCCESS; } 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 561c9253be15529db59cf92bde2e80ded04825b1..56443737e954ecc9b803816be150057473a9e227 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 ac12e5dd1cb024f1909f3510cee1ffd77522b876..45b5826ca3b6f829e37223852dd907eb7a10dc42 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 fa6e3916995ba3b3e52dd0c863eb5cfc1c0b9daf..49dc8863d25b8fe16082a2b0c9eccfa4afa101d9 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 c34158889d6b70b331b0118da56ffe6a590639bd..39bcf6c85255d1c4ff82e0253f363c9fab8d6c8b 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_);