Fix svace issue in GetFontId 07/278707/1
authorBowon Ryu <bowon.ryu@samsung.com>
Mon, 25 Jul 2022 07:52:26 +0000 (16:52 +0900)
committerBowon Ryu <bowon.ryu@samsung.com>
Mon, 25 Jul 2022 07:52:26 +0000 (16:52 +0900)
added condition to prevent integer overflow

Change-Id: I4aa3896f834d6b145236b0ad1bf61553b90e2ed9
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
dali/internal/text/text-abstraction/plugin/font-client-plugin-impl.cpp

index f119b5e..2a44fde 100644 (file)
@@ -614,11 +614,14 @@ FontId FontClient::Plugin::GetFontId(const FontDescription& fontDescription,
     // So set cacheDescription=false, that we don't call CacheFontPath().
     fontId = GetFontIdByPath(description.path, requestedPointSize, faceIndex, false);
 
-    fontCacheIndex                                              = mCacheHandler->mFontIdCache[fontId - 1u].index;
-    mCacheHandler->mFontFaceCache[fontCacheIndex].mCharacterSet = FcCharSetCopy(mCacheHandler->mCharacterSetCache[fontDescriptionId - 1u]);
+    if((fontId > 0u) && (fontId - 1u < mCacheHandler->mFontIdCache.size()))
+    {
+      fontCacheIndex                                              = mCacheHandler->mFontIdCache[fontId - 1u].index;
+      mCacheHandler->mFontFaceCache[fontCacheIndex].mCharacterSet = FcCharSetCopy(mCacheHandler->mCharacterSetCache[fontDescriptionId - 1u]);
 
-    // Cache the pair 'fontDescriptionId, requestedPointSize' to improve the following queries.
-    mCacheHandler->CacheFontDescriptionSize(fontDescriptionId, requestedPointSize, fontCacheIndex);
+      // Cache the pair 'fontDescriptionId, requestedPointSize' to improve the following queries.
+      mCacheHandler->CacheFontDescriptionSize(fontDescriptionId, requestedPointSize, fontCacheIndex);
+    }
   }
   else
   {