From: Eunki, Hong Date: Thu, 23 Sep 2021 04:42:18 +0000 (+0900) Subject: [Tizen] Fix coverity issue at capture X-Git-Tag: accepted/tizen/6.0/unified/20210924.132538^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F83%2F264483%2F1;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git [Tizen] Fix coverity issue at capture Change-Id: Ic2eea250b91eb729f57490a1948c06b6b56256ca Signed-off-by: Eunki, Hong --- 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));