[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] undefined_scale 25fa1429b: Draft: [base] Undefined scale mea
From: |
Werner Lemberg |
Subject: |
[freetype2] undefined_scale 25fa1429b: Draft: [base] Undefined scale means no scale. |
Date: |
Tue, 18 Jan 2022 22:33:27 -0500 (EST) |
branch: undefined_scale
commit 25fa1429b5ba37b41ce40f9547306dca17f0fa66
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>
Draft: [base] Undefined scale means no scale.
It might be surprising that FreeType does not have default ppem and
the size has to be set explicitly or face undefined behavior with undefined
variables and errors. This offers an alternative to missing or zero scale
by simply setting FT_LOAD_NO_SCALE.
This is alternative to !130 and discussed in
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43708
* src/base/ftobjs.c (FT_Load_Glyph): Deal with zero scale.
---
src/base/ftobjs.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index 18de2f7d4..27bbfa310 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -858,6 +858,11 @@
library = driver->root.library;
hinter = library->auto_hinter;
+ /* undefined scale means no scale */
+ if ( face->size->metrics.x_ppem == 0 ||
+ face->size->metrics.y_ppem == 0 )
+ flags |= FT_LOAD_NO_SCALE;
+
/* resolve load flags dependencies */
if ( load_flags & FT_LOAD_NO_RECURSE )
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] undefined_scale 25fa1429b: Draft: [base] Undefined scale means no scale.,
Werner Lemberg <=