From e3bbb905c476248b33fd3ceb0b0f56e729d3d990 Mon Sep 17 00:00:00 2001 From: seungho Date: Mon, 10 Jan 2022 18:07:00 +0900 Subject: [PATCH] [Tizen] Fix Svace issue in webp-loader Change-Id: I98c7717dd9e0d9f2e0ac614a29fa336c68c3354e Signed-off-by: seungho --- dali/internal/imaging/common/webp-loading.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/dali/internal/imaging/common/webp-loading.cpp b/dali/internal/imaging/common/webp-loading.cpp index 88a8eb5..346c12d 100644 --- a/dali/internal/imaging/common/webp-loading.cpp +++ b/dali/internal/imaging/common/webp-loading.cpp @@ -352,22 +352,26 @@ Dali::Devel::PixelBuffer WebPLoading::DecodeFrame(uint32_t frameIndex) { Dali::Devel::PixelBuffer pixelBuffer; #ifdef DALI_ANIMATED_WEBP_ENABLED - if(mImpl->mLatestLoadedFrame > static_cast(frameIndex)) + if(mImpl->mLatestLoadedFrame >= static_cast(frameIndex)) { mImpl->mLatestLoadedFrame = INITIAL_INDEX; WebPAnimDecoderReset(mImpl->mWebPAnimDecoder); } - uint8_t* frameBuffer; int32_t timestamp; + uint8_t* frameBuffer = nullptr; for(; mImpl->mLatestLoadedFrame < static_cast(frameIndex);) { WebPAnimDecoderGetNext(mImpl->mWebPAnimDecoder, &frameBuffer, ×tamp); mImpl->mTimeStamp[++mImpl->mLatestLoadedFrame] = timestamp; } - const int bufferSize = mImpl->mWebPAnimInfo.canvas_width * mImpl->mWebPAnimInfo.canvas_height * sizeof(uint32_t); - pixelBuffer = Dali::Devel::PixelBuffer::New(mImpl->mWebPAnimInfo.canvas_width, mImpl->mWebPAnimInfo.canvas_height, Dali::Pixel::RGBA8888); - memcpy(pixelBuffer.GetBuffer(), frameBuffer, bufferSize); + + if(frameBuffer != nullptr) + { + const int bufferSize = mImpl->mWebPAnimInfo.canvas_width * mImpl->mWebPAnimInfo.canvas_height * sizeof(uint32_t); + pixelBuffer = Dali::Devel::PixelBuffer::New(mImpl->mWebPAnimInfo.canvas_width, mImpl->mWebPAnimInfo.canvas_height, Dali::Pixel::RGBA8888); + memcpy(pixelBuffer.GetBuffer(), frameBuffer, bufferSize); + } #endif return pixelBuffer; -- 2.7.4