diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/text/qfontdatabase.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index 008ddad5cd..b09891bcee 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -2675,6 +2675,12 @@ QFontEngine *QFontDatabase::findFont(const QFontDef &request, int script) return engine; } + if (request.pixelSize > 0xffff) { + // Stop absurd requests reaching the engines; pixel size is assumed to fit ushort + qCDebug(lcFontMatch, "Rejecting request for pixel size %g2, returning box engine", double(request.pixelSize)); + return new QFontEngineBox(32); // not request.pixelSize, to avoid overflow/DOS + } + QString family_name, foundry_name; parseFontName(request.family, foundry_name, family_name); |