From b76cac98e3fd74125d3d11a4922cb1abee963ea0 Mon Sep 17 00:00:00 2001 From: "Eunki, Hong" Date: Thu, 23 Sep 2021 13:42:18 +0900 Subject: [PATCH 1/1] [Tizen] Fix coverity issue at capture Change-Id: Ic2eea250b91eb729f57490a1948c06b6b56256ca Signed-off-by: Eunki, Hong --- dali/internal/system/common/capture-impl.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/dali/internal/system/common/capture-impl.cpp b/dali/internal/system/common/capture-impl.cpp index 9dd3199..df7e4b3 100644 --- a/dali/internal/system/common/capture-impl.cpp +++ b/dali/internal/system/common/capture-impl.cpp @@ -53,6 +53,7 @@ Capture::Capture() mTimer(), mPath(), mNativeImageSourcePtr( NULL ), + mPixelBuffer(), mFileSave( false ), mIsNativeImageSourcePossible(true) { @@ -64,6 +65,7 @@ Capture::Capture( Dali::CameraActor cameraActor ) mTimer(), mPath(), mNativeImageSourcePtr( NULL ), + mPixelBuffer(), mFileSave( false ), mIsNativeImageSourcePossible(true) { @@ -133,17 +135,20 @@ Dali::Devel::PixelBuffer Capture::GetCapturedBuffer() { if(!mPixelBuffer || !mPixelBuffer.GetBuffer()) { - uint8_t* bufferPointer; + uint8_t* bufferPointer = nullptr; uint32_t width, height; Dali::Pixel::Format pixelFormat; + std::vector buffer; if(mIsNativeImageSourcePossible) { - std::vector buffer; - if(!mNativeImageSourcePtr->GetPixels(buffer, width, height, pixelFormat)) + if(mNativeImageSourcePtr->GetPixels(buffer, width, height, pixelFormat)) { - return Dali::Devel::PixelBuffer(); + if(width > 0 && height > 0) + { + // Get captured imge only if it have more than 1 pixels. + bufferPointer = &buffer[0]; + } } - bufferPointer = &buffer[0]; } else { @@ -152,6 +157,11 @@ Dali::Devel::PixelBuffer Capture::GetCapturedBuffer() pixelFormat = Dali::Pixel::RGBA8888; bufferPointer = mFrameBuffer.GetRenderedBuffer(); } + if(bufferPointer == nullptr) + { + // Fail to capture. Return empty pixel buffer. + return Dali::Devel::PixelBuffer(); + } mPixelBuffer = Dali::Devel::PixelBuffer::New(width, height, pixelFormat); memcpy(mPixelBuffer.GetBuffer(), bufferPointer, width * height * Dali::Pixel::GetBytesPerPixel(pixelFormat)); -- 2.7.4