freetype-commit
[Top][All Lists]
Advanced

[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 )



reply via email to

[Prev in Thread] Current Thread [Next in Thread]