aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2019-07-16 11:23:37 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-03-19 10:40:20 +0000
commit41889ee9f9aa143e0866041a663f1061d483b683 (patch)
treedfabe8c5e3531c918af376effaa139418b0708a8
parent0460560ee89886415e3c86582d7ca4d9388eb8d0 (diff)
QSGOpenGLDistanceFieldGlyphCache: fix multiplication result truncation
The type of the expression int * int is int, so truncation has already happened when the result is assigned to a qint64. Fix by casting one of the multiplicants to qint64 before performing the multiplication. This multiplication cannot overflow, because int is 32-bit on all supported platforms. The addition of 'size' to the pointer will still truncate the result, on 32bit platforms, but that check is in itself UB. A follow-up commit will fix the check, and with it the last truncation to 32bit. Coverity-Id: 218769 Change-Id: I0d71950695b9743db8c96d825e68bb1e9c47de02 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit cacfc1dbb9719c0ef55cff69dad0921ce1405438) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/quick/scenegraph/qsgrhidistancefieldglyphcache.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/quick/scenegraph/qsgrhidistancefieldglyphcache.cpp b/src/quick/scenegraph/qsgrhidistancefieldglyphcache.cpp
index e19649a236..a47b35210b 100644
--- a/src/quick/scenegraph/qsgrhidistancefieldglyphcache.cpp
+++ b/src/quick/scenegraph/qsgrhidistancefieldglyphcache.cpp
@@ -515,7 +515,7 @@ bool QSGRhiDistanceFieldGlyphCache::loadPregeneratedCache(const QRawFont &font)
int width = texInfo->allocatedArea.width();
int height = texInfo->allocatedArea.height();
- qint64 size = width * height;
+ qint64 size = qint64(width) * height;
if (reinterpret_cast<const char *>(textureData + size) > qtdfTableEnd) {
qWarning("qtdf table too small in font '%s'.",
qPrintable(font.familyName()));