shithub: freetype+ttf2subf

Download patch

ref: cc712a248c2075b126429d677357bb3a732759a1
parent: 45bb18fc7b8d9afa23fefa7b24e4c794594df32b
author: Werner Lemberg <[email protected]>
date: Fri Apr 27 13:16:50 EDT 2007

* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
number of points in contours.  Problem reported by Victor Stinner
<[email protected]>.
(TT_Process_Simple_Glyph): Synchronize variable types.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-04-27  Werner Lemberg  <[email protected]>
+
+	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
+	number of points in contours.  Problem reported by Victor Stinner
+	<[email protected]>.
+	(TT_Process_Simple_Glyph): Synchronize variable types.
+
 2007-04-26  Werner Lemberg  <[email protected]>
 
 	* src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -271,7 +271,11 @@
 
     n_points = 0;
     if ( n_contours > 0 )
+    {
       n_points = cont[-1] + 1;
+      if ( n_points < 0 )
+        goto Invalid_Outline;
+    }
 
     /* note that we will add four phantom points later */
     error = FT_GLYPHLOADER_CHECK_POINTS( gloader, n_points + 4, 0 );
@@ -682,7 +686,7 @@
     FT_GlyphLoader  gloader = loader->gloader;
     FT_Error        error   = TT_Err_Ok;
     FT_Outline*     outline;
-    FT_UInt         n_points;
+    FT_Int          n_points;
 
 
     outline  = &gloader->current.outline;
@@ -709,7 +713,7 @@
       /* Deltas apply to the unscaled data. */
       FT_Vector*  deltas;
       FT_Memory   memory = loader->face->memory;
-      FT_UInt     i;
+      FT_Int      i;
 
 
       error = TT_Vary_Get_Glyph_Deltas( (TT_Face)(loader->face),