From 093911a1dc235ae4807b71712eb6f71a10803e82 Mon Sep 17 00:00:00 2001 From: nmzik Date: Sun, 6 Sep 2026 14:04:27 +0400 Subject: [PATCH] audio: check packet buffers only during decode --- src/libs/libAudio.cpp | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/src/libs/libAudio.cpp b/src/libs/libAudio.cpp index bf106be95..2f91f2b18 100644 --- a/src/libs/libAudio.cpp +++ b/src/libs/libAudio.cpp @@ -775,23 +775,25 @@ static int32_t audiodec_validate_ctrl(const AudiodecCtrl* ctrl, uint32_t codec_t if (ctrl->pBsiInfo == nullptr) { return AUDIODEC_ERROR_INVALID_BSI_INFO_POINTER; } - if (ctrl->pAuInfo == nullptr) { - return AUDIODEC_ERROR_INVALID_AU_INFO_POINTER; - } - if (ctrl->pPcmItem == nullptr) { - return AUDIODEC_ERROR_INVALID_PCM_ITEM_POINTER; - } - if (ctrl->pAuInfo->uiSize != sizeof(AudiodecAuInfo)) { - return AUDIODEC_ERROR_INVALID_AU_INFO_SIZE; - } - if (ctrl->pPcmItem->uiSize != sizeof(AudiodecPcmItem)) { - return AUDIODEC_ERROR_INVALID_PCM_ITEM_SIZE; - } - if (decode && ctrl->pAuInfo->pAuAddr == nullptr) { - return AUDIODEC_ERROR_INVALID_AU_POINTER; - } - if (decode && ctrl->pPcmItem->pPcmAddr == nullptr) { - return AUDIODEC_ERROR_INVALID_PCM_POINTER; + if (decode) { + if (ctrl->pAuInfo == nullptr) { + return AUDIODEC_ERROR_INVALID_AU_INFO_POINTER; + } + if (ctrl->pPcmItem == nullptr) { + return AUDIODEC_ERROR_INVALID_PCM_ITEM_POINTER; + } + if (ctrl->pAuInfo->uiSize != sizeof(AudiodecAuInfo)) { + return AUDIODEC_ERROR_INVALID_AU_INFO_SIZE; + } + if (ctrl->pPcmItem->uiSize != sizeof(AudiodecPcmItem)) { + return AUDIODEC_ERROR_INVALID_PCM_ITEM_SIZE; + } + if (ctrl->pAuInfo->pAuAddr == nullptr) { + return AUDIODEC_ERROR_INVALID_AU_POINTER; + } + if (ctrl->pPcmItem->pPcmAddr == nullptr) { + return AUDIODEC_ERROR_INVALID_PCM_POINTER; + } } switch (codec_type) {