shithub: freetype+ttf2subf

Download patch

ref: d087199f2c1388024b37fb3c3836e103aeded6c0
parent: c217bf19f02f0d0442bd58516dfab4fabf74ed2c
author: Werner Lemberg <[email protected]>
date: Mon Jun 7 04:46:01 EDT 2010

Fix Savannah bug #30052.
This bug has been introduced with commit 2415cbf3.

* src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Protect
against endless loop in case of corrupted font header data.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2010-06-07  Werner Lemberg  <[email protected]>
+
+	Fix Savannah bug #30052.
+	This bug has been introduced with commit 2415cbf3.
+
+	* src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Protect
+	against endless loop in case of corrupted font header data.
+
 2010-05-26  Werner Lemberg  <[email protected]>
 
 	Remove unused variable.
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -3111,7 +3111,7 @@
     FT_UInt   gindex = 0;
 
 
-    if ( face && face->charmap )
+    if ( face && face->charmap && face->num_glyphs )
     {
       gindex = FT_Get_Char_Index( face, 0 );
       if ( gindex == 0 || gindex >= (FT_UInt)face->num_glyphs )
@@ -3136,7 +3136,7 @@
     FT_UInt   gindex = 0;
 
 
-    if ( face && face->charmap )
+    if ( face && face->charmap && face->num_glyphs )
     {
       FT_UInt32  code = (FT_UInt32)charcode;
       FT_CMap    cmap = FT_CMAP( face->charmap );