prevent out of bounds 85/209485/4
authorJoogab Yun <joogab.yun@samsung.com>
Mon, 8 Jul 2019 08:14:04 +0000 (17:14 +0900)
committerJoogab Yun <joogab.yun@samsung.com>
Wed, 10 Jul 2019 03:58:07 +0000 (12:58 +0900)
If bytesPerPixel is 0, the alphaIndex value is 4294967295.
  const unsigned int bytesPerPixel = Dali::Pixel::GetBytesPerPixel(pixelFormat);
  const unsigned int alphaIndex = bytesPerPixel - 1u;

Change-Id: Ia7c1dc67d913141bd8d2c2fad062d7d861843fd1

automated-tests/src/dali-toolkit-internal/utc-Dali-Text-Circular.cpp
dali-toolkit/devel-api/text/text-utils-devel.cpp

index 9a6d206..ae3afd2 100755 (executable)
@@ -797,6 +797,10 @@ int UtcDaliTextUpdateBufferFormatCheck(void)
 
   Dali::Toolkit::DevelText::UpdateBuffer(srcBuffer, dstBuffer, 0, 0, true);
 
+  Devel::PixelBuffer compressedSrcBuffer = Devel::PixelBuffer::New( 10, 10, Pixel::COMPRESSED_R11_EAC );
+  Devel::PixelBuffer compressedDstBuffer = Devel::PixelBuffer::New( 10, 10, Pixel::COMPRESSED_R11_EAC );
+  Dali::Toolkit::DevelText::UpdateBuffer(compressedSrcBuffer, compressedDstBuffer, 0, 0, true);
+
   tet_result(TET_PASS);
   END_TEST;
 }
index dcc9ab8..eaab0e5 100755 (executable)
@@ -1281,6 +1281,10 @@ void UpdateBuffer(Devel::PixelBuffer src, Devel::PixelBuffer dst, unsigned int x
   }
 
   const unsigned int bytesPerPixel = Dali::Pixel::GetBytesPerPixel(pixelFormat);
+  if( bytesPerPixel == 0u )
+  {
+    return;
+  }
   const unsigned int alphaIndex = bytesPerPixel - 1u;
 
   const unsigned char* const srcBuffer = src.GetBuffer();