From 341d011fbcc10f5675f25a1cc4ecc2bb376f3792 Mon Sep 17 00:00:00 2001 From: Bowon Ryu Date: Mon, 25 Jul 2022 16:52:26 +0900 Subject: [PATCH] Fix svace issue in GetFontId added condition to prevent integer overflow Change-Id: I4aa3896f834d6b145236b0ad1bf61553b90e2ed9 Signed-off-by: Bowon Ryu --- .../text/text-abstraction/plugin/font-client-plugin-impl.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/dali/internal/text/text-abstraction/plugin/font-client-plugin-impl.cpp b/dali/internal/text/text-abstraction/plugin/font-client-plugin-impl.cpp index f119b5e..2a44fde 100644 --- a/dali/internal/text/text-abstraction/plugin/font-client-plugin-impl.cpp +++ b/dali/internal/text/text-abstraction/plugin/font-client-plugin-impl.cpp @@ -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 { -- 2.7.4