From 8138333273fb492b2a55eea1a851b82d5ed565a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E4=BF=8A=E6=A1=A6?= Date: Wed, 9 Jul 2025 10:40:32 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E9=9F=B3=E9=A2=91?= =?UTF-8?q?=E9=A9=B1=E5=8A=A8=E6=8E=92=E6=9F=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 冯俊桦 --- .../hdi_service/audio/v1_0/src/audio_driver.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/distributed_audio/hdi_service/audio/v1_0/src/audio_driver.cpp b/distributed_audio/hdi_service/audio/v1_0/src/audio_driver.cpp index ff3e7881b0..eb6dad9c17 100644 --- a/distributed_audio/hdi_service/audio/v1_0/src/audio_driver.cpp +++ b/distributed_audio/hdi_service/audio/v1_0/src/audio_driver.cpp @@ -39,7 +39,10 @@ static int32_t AudioManagerDriverDispatch(struct HdfDeviceIoClient *client, int OHOS::MessageParcel *dataParcel = nullptr; OHOS::MessageParcel *replyParcel = nullptr; OHOS::MessageOption option; - + if (client == nullptr || data == nullptr || reply == nullptr) { + HDF_LOGE("%{public}s: input client/data/reply is NULL", __func__); + return HDF_ERR_INVALID_PARAM; + } if (SbufToParcel(data, &dataParcel) != HDF_SUCCESS) { HDF_LOGE("%{public}s:invalid data sbuf object to dispatch", __func__); return HDF_ERR_INVALID_PARAM; -- Gitee From 69b28700e9ec202b248fbfb84e88d7a284970159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E4=BF=8A=E6=A1=A6?= Date: Fri, 25 Jul 2025 17:00:40 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E9=9F=B3=E9=A2=91?= =?UTF-8?q?=E9=A9=B1=E5=8A=A8=E6=8E=92=E6=9F=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 冯俊桦 --- .../hdi_service/audio/v1_0/src/audio_render_ext_impl.cpp | 4 +++- .../hdi_service/common/utils/src/daudio_utils.cpp | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/distributed_audio/hdi_service/audio/v1_0/src/audio_render_ext_impl.cpp b/distributed_audio/hdi_service/audio/v1_0/src/audio_render_ext_impl.cpp index 5e4eed7d64..1e795e370d 100644 --- a/distributed_audio/hdi_service/audio/v1_0/src/audio_render_ext_impl.cpp +++ b/distributed_audio/hdi_service/audio/v1_0/src/audio_render_ext_impl.cpp @@ -423,7 +423,9 @@ int32_t AudioRenderExtImpl::ReqMmapBuffer(int32_t reqSize, AudioMmapBufferDescri DHLOGI("ReqMmap buffer realsize : %{public}d, minsize: %{public}d, maxsize:%{public}d.", realSize, minSize, maxSize); desc.totalBufferFrames = realSize; - ashmemLength_ = realSize * static_cast(devAttrs_.channelCount) * devAttrs_.format; + int64_t result = realSize * static_cast(devAttrs_.channelCount) * devAttrs_.format; + CHECK_AND_RETURN_RET_LOG(result > INT32_MAX, HDF_FAILURE, "ashmemLength_ overflow"); + ashmemLength_ = static_cast(result); DHLOGI("Init ashmem real sample size : %{public}d, length: %{public}d.", realSize, ashmemLength_); int32_t ret = InitAshmem(ashmemLength_); if (ret != HDF_SUCCESS) { diff --git a/distributed_audio/hdi_service/common/utils/src/daudio_utils.cpp b/distributed_audio/hdi_service/common/utils/src/daudio_utils.cpp index 354de489c3..36e173d9a3 100644 --- a/distributed_audio/hdi_service/common/utils/src/daudio_utils.cpp +++ b/distributed_audio/hdi_service/common/utils/src/daudio_utils.cpp @@ -165,8 +165,11 @@ int64_t GetNowTimeUs() uint32_t CalculateFrameSize(uint32_t sampleRate, uint32_t channelCount, int32_t format, uint32_t timeInterval, bool isMMAP) { - return isMMAP ? (sampleRate * channelCount * static_cast(format) * timeInterval) / - AUDIO_MS_PER_SECOND : DEFAULT_AUDIO_DATA_SIZE; + uint64_t result = (static_cast(sampleRate) * + channelCount * static_cast(format) * + timeInterval) / AUDIO_MS_PER_SECOND; + return isMMAP ? (result > std::numeric_limits::max() ? 0 : static_cast(result)) : + DEFAULT_AUDIO_DATA_SIZE; } int32_t CalculateSampleNum(uint32_t sampleRate, uint32_t timems) -- Gitee From 1791d810f63876ee4940f86ae4b46f3f097e3720 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E4=BF=8A=E6=A1=A6?= Date: Mon, 28 Jul 2025 19:06:19 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E9=9F=B3=E9=A2=91?= =?UTF-8?q?=E9=A9=B1=E5=8A=A8=E6=8E=92=E6=9F=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 冯俊桦 --- distributed_audio/hdi_service/common/utils/src/daudio_utils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distributed_audio/hdi_service/common/utils/src/daudio_utils.cpp b/distributed_audio/hdi_service/common/utils/src/daudio_utils.cpp index 36e173d9a3..7c8da07a9a 100644 --- a/distributed_audio/hdi_service/common/utils/src/daudio_utils.cpp +++ b/distributed_audio/hdi_service/common/utils/src/daudio_utils.cpp @@ -165,7 +165,7 @@ int64_t GetNowTimeUs() uint32_t CalculateFrameSize(uint32_t sampleRate, uint32_t channelCount, int32_t format, uint32_t timeInterval, bool isMMAP) { - uint64_t result = (static_cast(sampleRate) * + uint64_t result = (static_cast(sampleRate) * channelCount * static_cast(format) * timeInterval) / AUDIO_MS_PER_SECOND; return isMMAP ? (result > std::numeric_limits::max() ? 0 : static_cast(result)) : -- Gitee From 4d3e26ab86dd04b3530653c4cea1b786a8f929dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E4=BF=8A=E6=A1=A6?= Date: Tue, 29 Jul 2025 12:13:03 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E9=9F=B3=E9=A2=91?= =?UTF-8?q?=E9=A9=B1=E5=8A=A8=E6=8E=92=E6=9F=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 冯俊桦 --- .../hdi_service/audio/v1_0/src/audio_driver.cpp | 4 ---- .../audio/v1_0/src/audio_render_ext_impl.cpp | 2 +- .../hdi_service/common/utils/src/daudio_utils.cpp | 11 +++++++---- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/distributed_audio/hdi_service/audio/v1_0/src/audio_driver.cpp b/distributed_audio/hdi_service/audio/v1_0/src/audio_driver.cpp index eb6dad9c17..f1a9e995c8 100644 --- a/distributed_audio/hdi_service/audio/v1_0/src/audio_driver.cpp +++ b/distributed_audio/hdi_service/audio/v1_0/src/audio_driver.cpp @@ -39,10 +39,6 @@ static int32_t AudioManagerDriverDispatch(struct HdfDeviceIoClient *client, int OHOS::MessageParcel *dataParcel = nullptr; OHOS::MessageParcel *replyParcel = nullptr; OHOS::MessageOption option; - if (client == nullptr || data == nullptr || reply == nullptr) { - HDF_LOGE("%{public}s: input client/data/reply is NULL", __func__); - return HDF_ERR_INVALID_PARAM; - } if (SbufToParcel(data, &dataParcel) != HDF_SUCCESS) { HDF_LOGE("%{public}s:invalid data sbuf object to dispatch", __func__); return HDF_ERR_INVALID_PARAM; diff --git a/distributed_audio/hdi_service/audio/v1_0/src/audio_render_ext_impl.cpp b/distributed_audio/hdi_service/audio/v1_0/src/audio_render_ext_impl.cpp index 1e795e370d..75f1dc644d 100644 --- a/distributed_audio/hdi_service/audio/v1_0/src/audio_render_ext_impl.cpp +++ b/distributed_audio/hdi_service/audio/v1_0/src/audio_render_ext_impl.cpp @@ -423,7 +423,7 @@ int32_t AudioRenderExtImpl::ReqMmapBuffer(int32_t reqSize, AudioMmapBufferDescri DHLOGI("ReqMmap buffer realsize : %{public}d, minsize: %{public}d, maxsize:%{public}d.", realSize, minSize, maxSize); desc.totalBufferFrames = realSize; - int64_t result = realSize * static_cast(devAttrs_.channelCount) * devAttrs_.format; + int64_t result = static_cast(realSize) * static_cast(devAttrs_.channelCount) * static_cast(devAttrs_.format); CHECK_AND_RETURN_RET_LOG(result > INT32_MAX, HDF_FAILURE, "ashmemLength_ overflow"); ashmemLength_ = static_cast(result); DHLOGI("Init ashmem real sample size : %{public}d, length: %{public}d.", realSize, ashmemLength_); diff --git a/distributed_audio/hdi_service/common/utils/src/daudio_utils.cpp b/distributed_audio/hdi_service/common/utils/src/daudio_utils.cpp index 7c8da07a9a..4471826bfd 100644 --- a/distributed_audio/hdi_service/common/utils/src/daudio_utils.cpp +++ b/distributed_audio/hdi_service/common/utils/src/daudio_utils.cpp @@ -166,10 +166,13 @@ uint32_t CalculateFrameSize(uint32_t sampleRate, uint32_t channelCount, int32_t format, uint32_t timeInterval, bool isMMAP) { uint64_t result = (static_cast(sampleRate) * - channelCount * static_cast(format) * - timeInterval) / AUDIO_MS_PER_SECOND; - return isMMAP ? (result > std::numeric_limits::max() ? 0 : static_cast(result)) : - DEFAULT_AUDIO_DATA_SIZE; + static_cast(channelCount) * static_cast(format) * + timeInterval) / AUDIO_MS_PER_SECOND; + return isMMAP ? + (result > std::numeric_limits::max() ? + (DHLOGE("Frame siez calculation overflow"), 0) : + static_cast(result)) : + DEFAULT_AUDIO_DATA_SIZE; } int32_t CalculateSampleNum(uint32_t sampleRate, uint32_t timems) -- Gitee From 5916030f1d7f7f74a9e685d19ae9f17b70ecf13f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E4=BF=8A=E6=A1=A6?= Date: Tue, 29 Jul 2025 14:08:27 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E9=9F=B3=E9=A2=91?= =?UTF-8?q?=E9=A9=B1=E5=8A=A8=E6=8E=92=E6=9F=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 冯俊桦 --- .../hdi_service/audio/v1_0/src/audio_render_ext_impl.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/distributed_audio/hdi_service/audio/v1_0/src/audio_render_ext_impl.cpp b/distributed_audio/hdi_service/audio/v1_0/src/audio_render_ext_impl.cpp index 75f1dc644d..af30ff6fb7 100644 --- a/distributed_audio/hdi_service/audio/v1_0/src/audio_render_ext_impl.cpp +++ b/distributed_audio/hdi_service/audio/v1_0/src/audio_render_ext_impl.cpp @@ -423,7 +423,9 @@ int32_t AudioRenderExtImpl::ReqMmapBuffer(int32_t reqSize, AudioMmapBufferDescri DHLOGI("ReqMmap buffer realsize : %{public}d, minsize: %{public}d, maxsize:%{public}d.", realSize, minSize, maxSize); desc.totalBufferFrames = realSize; - int64_t result = static_cast(realSize) * static_cast(devAttrs_.channelCount) * static_cast(devAttrs_.format); + int64_t result = static_cast(realSize) * + static_cast(devAttrs_.channelCount) * + static_cast(devAttrs_.format); CHECK_AND_RETURN_RET_LOG(result > INT32_MAX, HDF_FAILURE, "ashmemLength_ overflow"); ashmemLength_ = static_cast(result); DHLOGI("Init ashmem real sample size : %{public}d, length: %{public}d.", realSize, ashmemLength_); -- Gitee From f35af96b512a580009e00ed6d722ab8d602659c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E4=BF=8A=E6=A1=A6?= Date: Tue, 29 Jul 2025 15:16:48 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E9=9F=B3=E9=A2=91?= =?UTF-8?q?=E5=91=8A=E8=AD=A6=E6=8E=92=E6=9F=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 冯俊桦 --- .../hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp b/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp index d532e5ba88..0fbf428bea 100644 --- a/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp +++ b/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp @@ -1251,7 +1251,7 @@ bool AudioAdapterInterfaceImpl::IsPortsNoReg() inline bool AudioAdapterInterfaceImpl::IsIdValid(const uint32_t id) { - if (id >= MAX_AUDIO_STREAM_NUM) { + if (id >= static_cast(MAX_AUDIO_STREAM_NUM)) { DHLOGE("Current id:%{public}u is not supported.", id); return false; } -- Gitee From 253e081015aea7676b4899aebb462d0f04a99755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E4=BF=8A=E6=A1=A6?= Date: Tue, 29 Jul 2025 15:57:04 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E9=9F=B3=E9=A2=91?= =?UTF-8?q?=E9=A9=B1=E5=8A=A8=E6=8E=92=E6=9F=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 冯俊桦 --- .../hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp b/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp index 0fbf428bea..d532e5ba88 100644 --- a/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp +++ b/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp @@ -1251,7 +1251,7 @@ bool AudioAdapterInterfaceImpl::IsPortsNoReg() inline bool AudioAdapterInterfaceImpl::IsIdValid(const uint32_t id) { - if (id >= static_cast(MAX_AUDIO_STREAM_NUM)) { + if (id >= MAX_AUDIO_STREAM_NUM) { DHLOGE("Current id:%{public}u is not supported.", id); return false; } -- Gitee From 95dbdae9421130a23f11fc5561f260d6e9763afc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E4=BF=8A=E6=A1=A6?= Date: Tue, 29 Jul 2025 19:35:42 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E7=9C=8B=E6=9D=BF=E5=91=8A=E8=AD=A6?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 冯俊桦 --- .../hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp b/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp index d532e5ba88..0fbf428bea 100644 --- a/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp +++ b/distributed_audio/hdi_service/audio/v1_0/src/audio_adapter_interface_impl.cpp @@ -1251,7 +1251,7 @@ bool AudioAdapterInterfaceImpl::IsPortsNoReg() inline bool AudioAdapterInterfaceImpl::IsIdValid(const uint32_t id) { - if (id >= MAX_AUDIO_STREAM_NUM) { + if (id >= static_cast(MAX_AUDIO_STREAM_NUM)) { DHLOGE("Current id:%{public}u is not supported.", id); return false; } -- Gitee