From 3900c03132b18b2989c708b362785625b176b0cd Mon Sep 17 00:00:00 2001 From: Tome Date: Fri, 1 Aug 2025 11:06:58 +0800 Subject: [PATCH] =?UTF-8?q?AI=20=E5=91=8A=E8=AD=A6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tome --- .../multimedia_codec/encoder/encode_data_process.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/services/data_process/src/pipeline_node/multimedia_codec/encoder/encode_data_process.cpp b/services/data_process/src/pipeline_node/multimedia_codec/encoder/encode_data_process.cpp index 3df432b6..10939282 100644 --- a/services/data_process/src/pipeline_node/multimedia_codec/encoder/encode_data_process.cpp +++ b/services/data_process/src/pipeline_node/multimedia_codec/encoder/encode_data_process.cpp @@ -474,8 +474,14 @@ int32_t EncodeDataProcess::GetEncoderOutputBuffer(uint32_t index, MediaAVCodec:: CHECK_AND_RETURN_RET_LOG(info.size <= 0 || info.size > DATABUFF_MAX_SIZE, DCAMERA_BAD_VALUE, "AVCodecBufferInfo error, buffer size : %{public}d", info.size); size_t outputMemoDataSize = static_cast(info.size); + CHECK_AND_RETURN_RET_LOG(buffer->GetBase() == nullptr, DCAMERA_BAD_OPERATE, + "Sink point check failed: Source buffer base is null."); + CHECK_AND_RETURN_RET_LOG(outputMemoDataSize > buffer->GetSize(), DCAMERA_BAD_VALUE, + "Sink point check failed: outputMemoDataSize exceeds source allocated size."); DHLOGD("Encoder output buffer size : %{public}zu", outputMemoDataSize); std::shared_ptr bufferOutput = std::make_shared(outputMemoDataSize); + CHECK_AND_RETURN_RET_LOG(bufferOutput->Data() == nullptr, DCAMERA_MEMORY_OPT_ERROR, + "Sink point check failed: Failed to allocate output buffer."); errno_t err = memcpy_s(bufferOutput->Data(), bufferOutput->Size(), buffer->GetBase(), outputMemoDataSize); CHECK_AND_RETURN_RET_LOG(err != EOK, DCAMERA_MEMORY_OPT_ERROR, "%{public}s", "memcpy_s buffer failed."); -- Gitee